Francisco Perej贸n

Francisco Perej贸n

Published in Tooling 路 4 min read

GitHub Copilot has been released!

Explanation for the latecomers

GitHub Copilot is a new AI that is able to autocomplete your code just by typing the function name or by writing some comments. For further explanation or examples you can visit its page.

I was lucky enough to be accepted in the technical preview 7 months ago and I’ve been using it in some personal projects I did. For me it’s a good tool but not as good as it looks. I had some “wow moments” where I wrote few lines in the function and Copilot completed the rest but most of the time it was limited to completing some lines. Copilot can also offer code adapted to your context, so yes, it does much more than automate the copy/paste workflow from Stack Overflow 馃槈.

Criticised along the way

Nowadays, criticism is a constant in our society and Copilot is not safe and perhaps it deserves it. The first new I saw was long ago when I saw that some functional API keys were leaked but it can be explained since Copilot is trained with public repositories and I’m sure that some of them pushed their keys without using environment variables.

I had a doubt because of this fact, can GitHub store our code while we are writing it using its extension? short answer is yes, it can 馃槺. Then can it offer our private code? Well it seems that I wasn’t the only one with that question since it’s in the FAQ. In this section we can see that GitHub can collect and retain our data but we can adjust that and we can also see that our private code is not shared with other users.

Criticised in the release

When it was released we discovered that this tool won’t be free (unless you are a student or maintainer of a popular open source project), that angered a group of people who claim it used their licensed code to train its algorithm. Hector Martin, the responsible for the development of Asahi Linux (a GNU/Linux distribution installable on the Mac M1), made a thread on twitter commenting on this problem.

I’ve read a post in which Kate Downing, an intellectual property lawyer, analyzed the legal implications of GitHub Copilot, to summarise:

  • The training was legal since we accept the GitHub Terms of Service where we give GitHub the right to use our code to improve their products and features.
  • Regarding licences it depends on the length and complexity of the code but we are responsible for using that licensed code.

Copilot in business

Currently you can buy Copilot for 10$/month and 100$/year, I think that its use will accelerate code production by more than cost and in the future they will release a plan for companies (maybe they are looking for some way to defend that they have been using licensed code to sell it to large companies). It has a free demo of 60 days which I recommend trying it.

Competitors

Tabnine seems a good competitor for Copilot and it seems to respect the licenses, maybe it deserves a separate post.

Code Whisperer is a beautiful name for a tool powered by Amazon. About the problem of licensed code; it will note that and highlight the license of that original function. It鈥檚 then up to the developer to decide whether to use it or not. Maybe it’s not the best solution but will allow to develop more peacefully. Of course we will have to see its potential and its price.

Conclusion

They have released a tool which could give us a boost but they are doing business with code that was not made for that purpose. On the other hand the development of this tool wasn’t free and the maintenance won’t be free. Of course, they are going to make a lot of money from the subscription but they will give us a lot of value. I don’t have a strong opinion, ethics is not black and white, it is often a layer of grey. But as a company if the use of these AI Code Assistants is extended we will need to use it (as long as it doesn’t pose legal problems) or the competitors may start to outrun us.

I hope you enjoyed this research and I would also like to know what do you think about this topic. I leave you with this meme to finish.