GitHub Copilot is one of the most advanced and practical uses of artificial intelligence that I have seen. I started using it around the middle of 2021 and have been ever since; however, I have noticed that it has changed throughout this time, and for the better, too.
What is Copilot?
Copilot is an Artificial Intelligence trained on public code using the OpenAI Codex engine. It is able to complete code you write, turn comments into code, and even write code based on the name of a method.
Is Copilot free?
During the technical preview of Copilot, it is free to use once you have been accepted. You can signup for the waitlist here, it took around one week for me to get in.
After the technical preview, GitHub Copilot will be free for students and verified open-source projects, while requiring a subscription for other users. According to their plugin page:
Once GitHub Copilot is generally available, it will require a subscription. It will be free for verified students and maintainers of popular open source projects on GitHub.https://plugins.jetbrains.com/plugin/17718-github-copilot
There is no posted cost for the subscription as of now.
As of July 2nd, the cost for a subscription is $10/month, and if you pre-pay for a full year, it is $100
My thoughts on Copilot
I think it is amazing to see practical uses of Artificial Intelligence. Having AI write code is going to help write even better AI in the future, and with the GPT-4 engine coming out in the near future, it will soon be able to write code on-par with any person.
This comes at a cost though. Depending on the cost of a Copilot license, companies can hire less experienced developers and give them Copilot to write their code. People have been saying this for a while now, but I think that companies may be skeptical to adopt this new technology.
According to their FAQ, GitHub states that 0.1% of the suggestions will be directly from training:
We found that about 0.1% of the time, the suggestion may contain some snippets that are verbatim from the training set.https://copilot.github.com/
This could create problems with code under attribution-based licenses, or worse, proprietary licenses that do not allow you to redistribute the code. It is unlikely that Copilot would take the blame for any copyright infringement.
There is a video on YouTube by Engineer Man that covers some of these points in detail, it is well worth the watch:
Of course, using Copilot is going to help save you time, and if you are an experienced developer, it will not be as big of a crutch. The problem comes when people who are new to coding use it; for example, students who are just learning to code may use it without actually understand what the code that Copilot wrote is actually doing.
Writing your own code, making mistakes, and improving from those mistakes is the way I—and many others—learned to code. My concern is that this can be used for cheating in assignments, and when it comes to actually writing code for a test where students do not have access to Copilot, they likely will not be able to do so.
Does this mean you should not use Copilot?
Depends. If you are an experienced developer, I would say that it is fine, as long as you actually understand what Copilot is writing and can write it yourself without Copilot. If you are new to programming or somewhat proficient, I would suggest not using it, as you will become dependent on it.
My experience with Copilot
I’ve used Copilot for a while, and for new projects that I start on, Copilot can be a distraction. Granted, my IDE has a keyboard shortcut to disable/enable Copilot, it can be distracting when you’re thinking about how to write something and a block of code appears before you. Your attention is diverted to the code Copilot wrote, and if it is not what you want, it wastes time.
In this example, I wanted to make it so that four specific items were removed from local storage. Since Copilot does not seem to notice the code below where the completion suggestion is, it does not know the fields I want to remove.
For this, clearing all of local storage would be bad, as there are other things that need to be stored besides those four variables.
Copilot has been useful in other ways though. For this website, https://tempmail.lol, I used Copilot to help write some of its code. In particular, getting certain Unicode characters in HTML form can take time, whereas Copilot can do that in just a few seconds.
Even the name of the service, “GitHub Copilot”, is enough to say that it is not something to write code for you, but rather to assist you in writing code, or to be your… copilot… get it?
While I will use it occasionally to help with writing tedious code, it does not mean you should as well. Look at the code Copilot produces, could you have written that code yourself without looking it up online? If not, maybe you should wait to use Copilot.