GitHub Copilot — the future of development

There’s been a lot of noise lately around the GitHub & Open AI collaboration — the Copilot tool. While the demos displayed on the Copilot website do look impressive, Copilot will actually not be the panacea many expect it to be.

Andrey Gizdov
5 min readSep 13, 2022

In this week’s article, we’ll take a look at the GitHub Copilot & what it means for the future of development!

What is the GitHub Copilot?

The GitHub Copilot is what’s called a pair programming assistant. A good analogy to use for understanding what that means is imagining two developers using one computer.

One developer is writing code & giving the ideas, while the other developer will be adding to the code & finding mistakes that the first developer has missed. It is literally as if you had another person coding next to you:

You: “Hey Copilot, I need to write a script that pulls all tweets I’ve made with my personal account. Any ideas?”

Copilot: “Hmm, maybe you could try using this function?” *writes a short function on your screen*

It is important to consider that Copilot is not hyper-smart — able to write everything for you — but it is pretty decent. More on this in the next sections.

This is in essence the idea behind the GitHub Copilot: an AI-assisted programming suggestion maker.

How does it work?

The Copilot uses a machine learning model developed by OpenAI — called Codex. The model itself is largely based on GPT-3 in terms of architecture. However, a lot more code examples have been used during its training — making it a lot more capable at code-related tasks than GPT-3.

Something important to note is that the code examples used to train Codex have been taken off of public GitHub repositories. This has several implications that are discussed below.

Why is it significant?

Contrary to popular belief, AI-assisted programming tools are not a new concept. They’ve existed for more than 5 years! The Stackoverflow Bot was one of the earliest players on the market — released back in 2016 & introduced into VS Code initially. It is (was) essentially able to pull answers to programming questions — written in plain language — directly from Stackoverflow into your IDE.

If the GitHub Copilot will not pioneer the field of AI-assisted programming, what makes it so special?

To put it simply: Yes, other AI-assisted programming tools have existed. However, the GitHub Copilot is expected to be significantly better than them.

It is still difficult to say with certainty what the tool will be capable of when it’s released, but it is expected that it will make better code suggestions & for more complex problems than what currently exists on the market.

Having said all that, let’s see the implications of Copilot on the developer community.

The GitHub Copilot will: increase development efficiency

Development jobs usually require writing a lot of mundane code. What do I mean by that? Think, for example, of writing a Python function that extracts only the numbers from a given string:

This function has been written thousands, if not millions, of times by other developers. You figuring out how to do it for the thousand-and-first time seems a little bit like a time-waster.

One of the main things Copilot will be able to do well is help with writing such basic functions for you. In essence, it will allow the developer to not have to re-invent the wheel:

Developers know that websites such as Stackoverflow already offer convenient answers for basic programming questions, but Copilot is the next step towards accessing those answers faster automatically.

The GitHub Copilot won’t: take your job

AI won’t take your programming job. The GitHub Copilot will write code, but it will not write perfect code. It is expected that in more complex situations, the code it produces will have bugs.

“Remember — Copilot is only as good as the average developer on GitHub”

Copilot will make the developers’ lives easier, but it is not 100% reliable — just as your average developer Joe isn’t. It will still remain a human task to make sure that the suggested code in fact does make sense and that it doesn’t break in more extreme cases.

In fact, the Copilot’s current tested accuracy stands at about 43%. It will get better over time, but you get the point: it’s not perfect and needs human supervision.

The GitHub Copilot will: make programming more approachable for beginners

As a beginner in a particular programming language — or programming in general — there can be a lot to learn. This can quickly get overwhelming, especially if the task you’re given is particularly large.

Programming learning curve

The first step is the hardest to make and having something to start with can be a great encouragement. Don’t get me wrong, Copilot will not write your programs for you. However, it will make suggestions that you can start with; editing something non-terrible is much easier than starting from scratch.

Also, for someone experienced with programming, learning a new language syntax by example works very well.

The GitHub Copilot won’t: come up with anything innovative

The Copilot has been trained on publicly available code on GitHub. This means that majority of its “knowledge” has been scrapped from already existing solutions.

If you’re programming something that hasn’t been created before, chances are that the Copilot will not perform up to a standard. Still, it is a generalizing machine learning algorithm so it may perform up to a standard, but the odds aren’t in your favor.

When it comes to something highly innovative — such as research-related tasks or unique product solutions — the chance that Copilot will get it right quickly approaches zero.

The GitHub Copilot will: (probably) make your code more robust to edge cases

Edge cases are when your program receives unexpected parameters which need special handling in order to not break your code. When writing for a production environment, it is virtually guaranteed that some random user will figure out a way to break your program in an unexpected way.

The way Copilot can help here, is by having aggregated a massive amount of data showing how the particular task you’re implementing has been done before. You might not think of an edge case, but other developers might.

Having code suggestions to compare your own code with, can pinpoint unexpected cases that you might not have considered initially — making your code more robust to unexpected parameters.

Conclusions

All that being said — AI is the future of development. It may not be a panacea, but it will certainly be a huge time saver!

“Copilot is one small step for AI & one giant leap for developers”

I hope you enjoyed this week’s article! If you did, make sure to share it & let me know what you want to see next. As always:

StAI smart!

--

--

Andrey Gizdov

Computer Vision Researcher @ Weizmann AI Center | Aspiring tech-entrepreneur | Sport enthusiast