GitHub Copilot is definitely one of the most fascinating results of AI the programmers have been using in the recent times. Let's take a look at what it has to offer.
What is GitHub Copilot?
GitHub Copilot is an AI-based Code Completion tool which can help you speed up your coding with its AI-based suggestions. It is built on OpenAI Codex from OpenAI and uses the GPT-3 algorithm. It is apparently trained on publicly available source code data, i.e on places like Stack overflow and public GitHub Repositories. Having said that, there's rarely any suggestion coming up that is literally a snippet from an actual repository.
Setup on VSCode
GitHub Copilot is in Technical Preview and to use it, you need to sign up on their website via GitHub. You'll get a mail from them once you're approved.
After that, you just have to install the extension in VSCode and you're good to go.
Using Copilot
To trigger solutions from GitHub Copilot, all you need to do is write a simple comment explaining your requirement along with a function name. This is available in multiple languages and frameworks. You can also look at multiple suggestions by simply hovering on your suggestion and clicking the buttons.
You can click on Open GitHub Copilot to look at 10 suggestions in one place.
More Examples
Reversing a String
List Intersection
Djikstra's Algorithm
Fetch Tweets from User
Pros
Time Saving
As a developer myself, I understand how time consuming it is to search for a problem and find solutions for it on stackoverflow. For example, I'm always confused how Datetime works in JavaScript and Python. All I do is simply search for 'How to convert date to --- in JS/Python' and grab whatever I get from stackoverflow. GitHub Copilot does that in less than 10 seconds for me without even opening a browser. Having solutions in your fingertips is definitely handy.Works with different languages and frameworks
Since the data used for training is literally all source code that is out in the open, GitHub Copilot works for various languages and frameworks. More popular the framework, the better the results I suppose. This means I can use Copilot to write components in React, styles in CSS, API routes in Nest or Express and much much more.Gets better with time
Pretty much a certainty for anything built with AI, GitHub Copilot suggestions will get better with time. As more people ask and answer to questions on stackoverflow, as people keep pushing more code to GitHub, it just increases the sample size for the tool to work with. One can expect better suggestions and probably ones with variety in the near future.
Cons
Not a Complete Product (yet)
As I mentioned, GitHub Copilot is still in Technical Preview and something that could end up in becoming a Paid tool, but as of now, it is far from perfect. You need to be very specific of what you are looking for in a function or you might not get the desired result. The suggestions you get are not necessarily different in approach and sometimes end up following the exact same logic.Not recommended for Beginners
Well, GitHub Copilot makes a lot of things easy, but for someone getting started with programming or development, you wouldn't want everything served up on a plate. They say one real way of learning is to actually deal with problems by yourself. And it's true, at least for programming. I'd really not recommend GitHub Copilot or similar Code Completing solutions to beginners, at least until they understand the basics of what they are doing.Lack of Clarity
An extension to the previous point, when you look for a function on Copilot, you get it within seconds. But when you actually look for it on stackoverflow, you read the problems and the answers as to how the problem was approached and tackled and more importantly, you get to see why a certain approach was followed. You miss that when your code is simply dropped from a suggestion.
Now let's address the big question -
Is GitHub Copilot here to steal our jobs?
In my opinion, not anytime soon. From what I understand, GitHub Copilot only makes things easier for us as developers to get small things done in our big projects a lot quicker than usual. For now, it's only a tool which will improve productivity among software developers.
In the future however, it's hard to predict. With more time in the industry not just for this application, a lot of things in development will eventually start getting automated and we are already seeing a shift. All upcoming technologies will focus on more functionality with less lines of code. But what is almost certain is that it'll only open up more opportunities for people. It is very unlikely for tools like these to "steal" our jobs.
As long as we get better with time and keep ourselves updated with what's latest in tech, I don't think we have a lot to worry about.
I hope you liked this thread and working with GitHub Copilot, more importantly. Thanks for reading, have a great day :)