Ali Zaini

Thoughts on AI Tools Like GitHub Copilot

AI

Programming


March 3, 2022



GitHub Copilot is a VSCode extension, dubbed an "AI Pair Programmer". Trained on billions of lines of code, it uses the context of the code you're writing to provide next-level autocompletion. It can do really impressive stuff such as writing functions based on English language descriptions or just some examples of data. By all accounts, it's pretty awesome. Copilot is built on the OpenAI Codex model and their site also showcases some interesting demos.

Although I haven't incorporated Copilot into my extension suite, I think it has the potential to be really helpful when prototyping or trying to bootstrap a project. For example, being able to describe that you want a "REST API using Flask with a GET endpoint called 'books'" and have that starter code loaded up for you without having to read docs would be awesome. Unfortunately it's a little bit finicky and the suggested code requires you to still have an understanding of the framework and language you're using. Some cool uses however are for testing and my importing and formatting things that you'd otherwise have to do manually. For example, "list of all the states in the USA" is something Copilot can easily do, even with more complex queries that might include statistics like populations for each state etc. (Of course, you'd still want to verify ANYTHING it spits out at you.)

I don't think these tools are anywhere close to replacing software engineers or redefining what it means to be a SWE. The Codex demo "Creating a Space Game with OpenAI Codex" is impressive, but it's essentially just programming with extra steps. Rather than write out JavaScript, you're using an incredibly high level language (English) to describe what you want to code. You still have to break up the problem into multiple parts, do those parts in order and address edge cases. That IS programming, not a replacement. And any mistakes or misinterpretations will have to be corrected by someone who understands the language that the AI is writing.

I look forward to being able to just ask "test my code" and have an AI figure it all out for me.