To kick off this new series, the Developer’s toolbox, we asked our developers what their favourite tool is for work.
Within minutes we had multiple replies with the same answer: GitHub Copilot.
GitHub Copilot is the new AI coding assistant that acts like an autofill for developers. GitHub’s Thomas Dohmke describes Copilot as “an editor extension that suggests code in real-time”. The tool had been in technical preview for a year before announcing its release to General Availability (GA) status just last month.
Over its year in preview, 1.2 million developers (including the LuminateOne team) trialled the tool. Through evolutionary computation, scanning millions of lines of code committed by GitHub community members, Copilot is now versed in billions of lines of code in various code languages. The aim of the tool is to spend less time creating boilerplate and repetitive code patterns, and more time focusing on the end goal: building great software.
In the LuminateOne offices, we’ve been using GitHub Copilot since February this year, and we’re quite impressed! In five months, we’ve noticed a real difference in our workflow and we’ve rounded up our developer’s thoughts to give you our pros & cons.
This is hands-down the biggest perk of Copilot. Having the ability to autocomplete lines of code and sometimes whole functions have been a huge timesaver. It took some getting used to, but once we understood how to frame inline code documentation in a way that the AI could easily compute, we found the code output surprisingly helpful. By not sweating the small stuff, we can focus on building the truly awesome software our team are capable of.
Makes helpful predictions
Much like predictive text, Copilot suggests the ending to your lines of code. It’s truly been great to see finicky, repetitive code complete itself, keeping us from banging our heads against our desks over minor issues. This means we save our brainpower for the more creative & challenging sections of code and algorithms.
Improves inline code documentation
Copilot has encouraged us to write better inline code documentation. This is because the tool generates suggestions based on the code documentation you give it. Kodie Upton, our development team lead noted that “our documentation has had to be more verbose so that Copilot can properly suggest the next stage, which in turn is good for returning or future developers to use for reference.”
It has encouraged all developers to get into the practice of writing great documentation. In particular, we’ve found that the need for comprehensive inline code documentation has helped our junior developers to instil good habits early on in their development journey. Not only is it helping them realise solutions and deploy them, but it’s helping them improve their code readability and writing skills.
Doesn’t work in all situations
OpenSource Licensing Issues
As Copilot’s AI has been trained on billions of lines of public OpenSource code, the debate over intellectual property and licensing have caused quite the stir. It appears the code generated can and has on occasion derived or emulated existing code without an attribute to the original license. This is potentially problematic as users may unknowingly create derivative works of copyleft-licensed code.
Future of AI coding tools
Copilot’s successful release has paved the way for other companies to follow the lead. Amazon unveiled their own code assistant at their re:Mars conference just a few days after CoPilot was officially launched and is now in the preview stages for developers to play with. Google has also announced their AI tool, Alphacode.
Overall, we’ve seen a real improvement in performance within our business using this new technology. The rate at which we develop has gotten faster and our developers have noticed a real difference when using Copilot. We will continue to use the AI assistant and investigate new AI tools as they are released.
We are cautiously optimistic about the future of AI development tools. While there is fear that sometime in the distant future our roles could be automated away, we are confident that with the help of AI coding assistants the bar will be raised for humans, and the small finicky code will be left to the bots while we humans focus on creating truly innovative software.