Github Copilot– An Ingenious Auto-coder That Calls For Scrutiny
The recent launch of Github’s AI pair programmer, Github Copilot, has the potential to transform the world of coding. Currently available as a technical preview, Github Copilot suggests successive lines of code and functions by parsing what developers type. A tool like this may not help us with the art of coding, but it definitely makes writing the mundane boilerplate code easier.
It can also reduce the number of Google searches and StackOverflow visits that require tediously tailoring search queries that add to frustrations.
As a company that strives to build and use smart, revolutionary products, this is right up our alley at Apply Digital. Adding Github Copilot to our arsenal is an exciting opportunity to reinforce our developers’ fluency and create more innovative experiences. We would try it out just like any new products that we use and review during their early or beta stages — we keep our expectations low, with a desire to expand its use within Apply Digital or make the call to wait (typically a year) before we review it again.
How Copilot works
When it comes to addressing project requirements through implementations, we always want to make the best use of our skills and resources. Our software developers or our Automation QA team members aren’t fond of writing common patterns over and over again. To support this, we have a “shared code bank” driven by our developers that saves us from rewriting repetitive code across projects.
Github Copilot is built along similar lines.
Created in collaboration with OpenAI, this tool is backed by intuitive AI trained on massive public source code, with most of it hosted on Github itself. It also uses the feedback from users to learn and enhance itself. Because Copilot allows developers to accept or reject suggestions, it bolsters continuous learning and the discovery of new ways to solve problems.
Github Copilot has the potential to ease up our developers’ day-to-day work by saving us from repetitive tasks like another OAuth implementation and free up time for the more innovative parts of coding, such as algorithm development or defining the logic for the whole project. If such tools can replace certain algorithms that could become boilerplate in the future, it will make way for digital transformations in code development.
Many of our developers use autocomplete plugins in IDEs, such as the ones provided by AI-powered coding assistant Kite, which reduce keystrokes and typos by completing functions, providing function lookups and documentation, etc. Github Copilot also suggests options for functions described in plain English using comments which makes it stand out in the crowd. It’s almost like asking the developer, “let me tell you which functions you may want to use.” We would obviously like to see these options and speed up our implementation. We could try out an API for the first time with more confidence.
Amid unresolved concerns, we’ll use it with caution
Github Copilot is not available commercially yet and currently only supports five languages. And the fact that it suggests code written by a global network of developers also means that we are getting both the wisdom and the stupidity of the crowd. It is yet to be seen how the tool performs when everyone makes a common error — it could pick up that error as well.
Netizens are also calling out on Github for carrying out copyright infringement using Github Copilot. Even though the tool is expected to suggest synthesized code for users, Github has said that GitHub Copilot can quote a body of code verbatim, but that it rarely does so. This could inevitably put open-source code up for commercial use without proper licensing. There may be 0.1% direct citations. But the technical preview doesn’t inform us about where it’s quoted from, so we cannot add any attribution for such code.
Hopefully, Copilot’s commercial version should address some of the concerns. But aren’t most machine learning systems already using public data? That’s a fair argument to have.
Also, a lot of AI projects fail — simply fail. They end up giving the wrong functions, and developers ditch them if it wastes their time. So we applaud Github’s effort for coming up with such a tool. But if it doesn’t help us, we’ll check back in a year to see if it matures. After all, Apple’s Siri only gained popularity in the past five years, despite being first released in 2010.
Auto-coders are radical additions to the software development world; we’ll definitely see more tools like this in the future. Github Copilot could be a notable model for such innovations.
Co-written by Rashika Srivastava