Invest in agility to save time, energy, and money
In short, Copilot is an extension that you can add to Visual Studio Code and other editors, and it can make you more productive and your work less error-prone. Copilot could easily transform how you work as a programmer.
Copilot is a paid service so the burning question therefore is ‘is Copilot worth it?’ Let’s dive in...
Will save you time
Think about it this way, if you could save time with a tool that prompts you to become a faster and more accurate programmer then you could perhaps invest that time in solving bigger coding challenges. This is the promise of Copilot! Copilot is by no means perfect, and won’t always do what you want or expect but it might be worthwhile if it saves you the time you normally dedicate to fixing bugs. For us, there is a strong case to test this hypothesis.
Another way to look at it is that Copilot is the equivalent of intelligently searching in stack overflow for a given solution, and copying and pasting it to your code editor. Sure, there may be some things that you will have to change by yourself but to have it done for you (in a second or less) is just amazing, especially when compared to doing the research yourself using traditional methods and then still having to make some changes to perfect the code.
Yes, but remember...
A typical programmer spends far more time actually thinking about what the algorithm might need rather than typing code. Second, in practice, when using Copilot, you are going to have to write a sufficiently big chunk of code before Copilot will predict the rest of the code that you need. It means typing less might save you, just a little bit of time.
Sometimes Copilot generates useful code. Other times it gets in the way. Most of the time it gets pretty close to what you want and then you have to edit the code to fit - which roughly takes the same amount of time as me just typing it yourself.
Helps you code better
Copilot can help you discover better ways to code. For code-related tasks that leave you flummoxed, the code prompts provided by Copilot can act as a guide. Conversely, for the things that you do know how to do, Copilot might seem tedious; at least you can review the different suggestions provided by Copilot and choose the right one. At best, it will reinforce what you know, and at worst, it could be an unnecessary distraction. Or more simply, you can use it when you can’t remember the syntax for the thing you are trying to do.
Worth $100 per year?
If you are new to software development we don’t think you should enable Copilot because you will sacrifice your learning journey and may come to depend on it too much and not understand what it's doing for you. If you are at an early stage in your career you shouldn’t use GitHub copilot until you become experienced with the language or framework that you are using; GitHub copilot might in fact inhibit your learning process. It largely depends on the type of learner you are, so there is food for thought in this one!
Remember GitHub's Copilot is like enhanced auto-complete but instead, it gives you full code snippets. If you understand what you're doing and understand the recommended snippet and know how it works and how to use it for your project then great! But the problem for a beginner is if you didn't understand it in the first place, how are you going to edit it or fix an error? CoPilot makes no guarantees that it's giving you bug-free code or even non-malicious code. It might give you code you don't understand and then you run it, and find out that it works fine, at least for all of your test cases. But ultimately you don’t fully grasp why or how it works.
Our advice, if you are a junior or noob in the world of programming then don't use Copilot until you've learned enough to understand basic concepts.
For intermediate and experienced developers
10 dollars a month is affordable, right? Just think about the time saved, the accumulated knowledge, and your improved productivity. Sounds amaaazing!
That said, sometimes Copilot is not as smart as you ;-) and the suggested snippets are not relevant to your needs. What’s the point in using a tool like Copilot if you're so familiar with the technology that it is in fact faster and less distracting to code without Copilot’s suggestions!
Copilot + Tabnine: the A Team!
Running Copilot and Tabnine together can improve your workflow. Copilot gets some things right but can come up short. You can use Tabnine to fix that. Put Tabnine in single-line mode and use the enter key to select the Tabnine suggestion and the tab key to accept the Github Copilot suggestion.
If you need a new variable at the current place in the code block you are writing, Tabnine will correctly predict the variable name. No other code completion tool still does this with long variable names. It´s a huge help.
Also, you can configure the Copilot settings to suggest and complete just a line or a couple of code lines for you. Then again, editing a 20-line snippet and debugging whole functions is harder and slower than writing it by yourself.
The legal area is still gray, it hasn't been court-tested yet.
At the end of the day Copilot, by virtue of AI, will only get better. We are still at the beginning of this innovation. Because of the fact that GitHub has such an enormous and active community we expect Copilot to improve quickly. That said, the legal issues may become obstacles to widespread usage.
Kate Downing, an IP lawyer who specializes in helping software companies navigate areas like open-source compliance answered this question.
- She doesn't think GitHub is committing copyright infringement by training Copilot on code hosted on GitHub.
She said “If you look at the GitHub Terms of Service, no matter what license you use, you give GitHub the right to host your code and to use your code to improve their products and features,” Downing says. “So with respect to code that’s already on GitHub, I think the answer to the question of copyright infringement is fairly straightforward.”
- For code not hosted on GitHub (and thus not governed by GitHub’s terms of service), she thinks there’s a strong case that Copilot uses said code in a transformative manner, which would support a fair use argument that there is no copyright infringement. Ultimately, however, we can’t be completely confident one way or the other until the matter is settled in a court of law.
She said “If Copilot is being trained on code outside of GitHub, we accept that at least some of what they’re looking at is copyrightable work,” Downing says. “So, the question then becomes if it’s fair use. Now, you ultimately can’t conclude definitively that something is fair use until you go to court and a judge agrees with your assessment. But I think there’s a strong case to be made that Copilot’s use of code is very transformative — a point that would favor the fair use argument.
Summary short and sweet
- GitHub Copilot is far from foolproof, a high percentage of its code was written by humans, and sometimes “flawed humans”.
- This is free for students (subject to verification) and those that maintain popular open-source projects.
- According to data collected from the files where it’s enabled, it is estimated that, in the most commonly used programming languages, Copilot can write up to 40% of the code, and this is set to increase.
Thanks for helping us understand copilot and making this blog possible.
Summary: @blackgirlbytes and @senficon
Should you pay Github Copilot? @jamesqquick
GitHub view: @ashtom
Legal: @KateVDowning on @getfossa blog
Security questions: @ShraddhaGoled
Quality questions: @mackenziempj
On the positive side: @Kyle_L_Wiggers and @davatron5000