In late June 2021 GitHub, as part of a collaboration with OpenAI, announced a new project called Copilot. It’s an AI-driven tool designed to support and improve active development, specifically by helping developers assess their code.
The program is still relatively new, and not available to everyone just yet. As with most AI applications, Copilot should improve over time as it ingests more data and is used more.
Many are wondering what is it exactly? Will it be taking over development jobs? What kind of support does it offer coders?
What Is GitHub Copilot?
As stated, Copilot is an AI tool that aims to make coding faster, and simpler for developers. It either auto-fills code or highlights potential errors, speeding up some of the manual processes that coders do naturally, anyway. The tool can also suggest single lines of code to include, adding basic functions, and point out missing elements. It’s an excellent tool for new coders or those learning a new language.
The platform is in a technical review stage, available to a select group of testers. Yet, Microsoft has implemented Copilot in the Visual Studio Code.
Because it’s backed by the OpenAI Codex, Copilot is significantly more powerful and adaptable, than previous tools like it — some examples include Tabnine and Kite. There are several testimonials and comments on the Copilot page, alluding to just how useful the platform is for developers. Some have described it as a coding “interpreter,” while others point out that it’s a “mind-blowing application” of machine learning.
How Does Github Copilot Work?
There are certain tasks in programming that, no matter how much experience and time you have with a language, will always be tedious and difficult. That’s especially true for certain languages such as JavaScript, Ruby, Python, and others. They are complex languages that have a lot of different things that can go wrong, and even a simple mistake can have sweeping ramifications.
The whole idea behind Github Copilot, as the name describes, is to be a copilot for improving, and fixing code. The AI tool that powers it has been trained with public source code from a bevy of languages, including Go, TypeScript, Ruby, Python, and JavaScript. What’s more, because it’s an intelligent and learning AI system, it will become familiar with how you write code over time and complement your creativity and processes.
It takes private code, analyzes it, and compares it using public code and text on the internet, as well as the OpenAI codex model. Then, it will provide editing context, suggestions, and improved flags over time, ultimately to make your private code stronger, better, and hopefully, more workable. It also understands human languages, which is how it can adapt to your coding habits and processes.
Will Copilot or AI Take Your Job(s)?
To put it bluntly, no, not anytime soon. During benchmarking tests using Python functions, the Copilot model made correct suggestions 43% of the time “on the first try.” It also made the right suggestions 57% of the time, when it was allowed 10 attempts. While it is “getting smarter all the time” those numbers are not ideal as a standalone platform. Copilot still relies on you, the developer, to review suggestions and code changes.
Many have raised concerns that AI could become much more advanced and capable. Eventually, it may replace developers, but if that’s going to happen it will be years from now. The same kinds of things are happening in the content writing and copywriting space, but AI has yet to replace capable writers.
Right now, Copilot relies on not just the public source code but also the code that you feed it. It’s not actively creating code, applications, or software solutions all on its own. Any code that it suggests is built using a combination of ingested code from you and public sources — in other words, it’s analyzing what you’re doing and how you’re doing it to provide intelligent suggestions.
What Else Should Developers Know?
Of course, there are some things to point out. First, Copilot does not produce perfect code, and since it takes suggestions from human-written content there may be bugs, outdated functions, and other problems within the suggested content.
“GitHub Copilot tries to understand your intent and to generate the best code it can, but the code it suggests may not always work, or even make sense. While we are working hard to make GitHub Copilot better, code suggested by GitHub Copilot should be carefully tested, reviewed, and vetted, like any other code. As the developer, you are always in charge.”
The GitHub FAQ also goes on to state the following:
“GitHub Copilot doesn’t actually test the code it suggests, so the code may not even compile or run. GitHub Copilot can only hold a very limited context, so even single source files longer than a few hundred lines are clipped and only the immediately preceding context is used. And GitHub Copilot may suggest old or deprecated uses of libraries and languages.”
There are prescient concerns about copyright infringement, and intellectual property rights. Raised by developers on a Hacker News thread, the legal ramifications are questionable. It’s the developer’s responsibility to review amended code, passing the buck if protected code is accidentally used. That may create even more work in the long run. You don’t want someone else’s content sneaking its way into your own projects.
We are not here to debate these concerns or issues, but it’s still important to point out they do exist.
Who Is GitHub Copilot for?
Because it’s only available to a few testers, the tool doesn’t necessarily have a place in the field of development. However, when it’s more openly available, it will be an excellent resource for inexperienced programmers and those learning to code. It’s also a great tool if you want to learn a new language — presumably moving over from another — or work with new frameworks. Copilot can help facilitate the process and makes it easier to spot missing content.
Copilot’s launch is exciting nonetheless and will help advance programming and development in the coming years. But it still relies on the human element, or rather a professional developer’s input. That’s an important distinction to make and shows it won’t replace anyone’s job, yet.
Disclosure of Material Connection: Some of the links in the post above are “affiliate links.” This means if you click on the link and purchase the item, I will receive an affiliate commission. Regardless, I only recommend products or services I use personally and believe will add value to my readers.