What GitHub's Copilot tool reveals about AI's future in software development
Software developers speak the language of computers. Conversant in commands and symbols, engineers rely on coding skills to craft applications.
Tools that support developers are evolving, making the next generation of engineers more akin to train conductors who rely on algorithms to turn natural language cues into applications. With AI feedback, tools promise software applications that come together fast and easy.
That's the gist of Copilot, a tool built by GitHub and OpenAI. Essentially, the platform is an AI-infused assistant that works as a virtual pair programmer for developers. Trained by code available on public repositories, Copilot is currently available under a technical preview.
GitHub Copilot uses OpenAI Codex, a GPT-3 based engine, which "draws context from comments and code, and suggests individual lines and whole functions instantly," according to the company's website.
While it's not the only tool promising an AI-assisted software development process, it is potentially a step forward because it can leverage GPT-3's machine learning capabilities to convert natural language into code, according to Arun Batchu, senior research director at Gartner. In a way, it can ease the disconnect between business requirements and the software that gets built.
"This is what is so exciting to me about the potential of the newer generation" of tools, said Batchu. "They raise the bar."
With smart tools complementing development, the software developer of the future will shift to focus more on connecting business requirements with technology. But the tools that herald this shift haven't yet reached the level of maturity required for widespread use and trust. They must first guarantee their security before broad enterprise-grade adoption.
AI, the dream pair programmer?
In the swelling vendor market for developer tools, there were previously a number of solutions that served functions in the same ballpark as GitHub. Providers such as Tabnine, Kite and Codota can generate suggestions in real time, with help from open source repositories and libraries.
But where other code completion tools allowed for quick prototyping, or creating "skeleton" applications that developers then flesh out, Copilot is aiming to take over more of that fleshing out process, said Usman Lakhani, research director at Info-Tech Research Group.
"That's where the Copilot tool is trying to squeeze its way in," said Lakhani.
According to GitHub, though Copilot is trained on existing code libraries, "the vast majority of the code that it suggests is uniquely generated and has never been seen before." The company declined an interview request, but directed questions to the product's FAQ section.
"I still think most companies ... by and large, haven't seen any significant transformation in the software development lifecycle with AI yet."
Chief AI officer at eBay
Another market difference with Copilot is the adoption of GPT-3. This technology, which once wrote an article describing itself, is orders of magnitude above its predecessor, GPT-2. Where GPT-2 was capable of relying on 1.5 billion parameters to produce its outcomes, the newer model can leverage 175 billion parameters.
"What's happening from an AI standpoint, and especially the new generation of AI which is deep-learning based, just like it is elevating or transforming every other job, it is clearly transforming the job of software creation itself," said Batchu.
AI has spared few traditional roles from redefinition. In the supply chain space, automation reframed how warehouse workers operate. Bots entered the marketing arena, suggesting examples of effective marketing copy. AI has also fielded many customer service queries once addressed by humans.
Tools such as GitHub's Copilot use AI to help engineers "discover the shape of the application that you need to build, but it's not going to be the perfect one," said Batchu.
"Copilot guesses the exact code I want to write about one in ten times, and the rest of the time it suggests something rather good, or completely off," Francois Zaninotto, CEO and co-founder of Marmelab, commented in a Hacker News post. "But when it guesses right, it feels like it's reading my mind."
Is the technology there yet?
Copilot is part of a bigger trend: AI's potential as a generative tool, as put forth by Gartner.
Rather than sit on the sidelines and assist, AI can produce on its own, whether that product is more efficient marketing copy, new routes for product delivery, new chemical compounds with therapeutic potential or, as Copilot does, infrastructure for applications and the lines of code that power it.
"I still think most companies, definitely most large companies but probably smaller ones as well, by and large, haven't seen any significant transformation in the software development lifecycle with AI yet," said Nitzan Mekel-Bobrov, chief AI officer at eBay.
Though versions of these applications have already been around, the industry is still assessing the longer-term impact of AI on the software development process.
"Where I see the initial applications, or phase one of this, is really applying AI at the edges of the existing process, rather than changing the process as a whole," said Mekel-Bobrov.
"What's happening from an AI standpoint, and especially the new generation of AI which is deep-learning based, just like it is elevating or transforming every other job, it is clearly transforming the job of software creation itself."
Senior research director at Gartner
As for the code output, there's the question of whether an algorithm is capable of applying engineering best practices when producing code on its own.
"I felt that, I was sifting through, I was trying to find that needle in the haystack, initially," said Lakhani, who had access to the technical review version of the product and found most of the code did not meet coding best practices. "However, that doesn't mean that it's not going to improve."
Security will be another factor executives will want to review if AI pair programmers become widely adopted. Unsecured code making its way to an enterprise application spells trouble.
One of the biggest risks of autogenerated code is that "they may meet nine out of 10 good practices, but that one good practice it misses is the one that will expose a company to the most risk," said Lakhani.
In one study, researchers gave Copilot 89 different scenarios to complete, and produced 1,692 programs. Upon review, approximately 40% of the code contained cybersecurity vulnerabilities, according to researchers Hammond Pearce, Baleegh Ahmad, Benjamin Tan, Brendan Dolan-Gavitt and Ramesh Karri.
But some believe AI tools may actually make software development more secure. Using vetted code databases to build software could reduce the chances of unwittingly adding security vulnerabilities to an application through freshly written, in-house code, according to Dori Exterman, CTO at Incredibuild.
"As a developer, I'm more restricted, in a way, of understanding the security vulnerabilities that the code that I generate can create," said Exterman.
Aside from security concerns, there are questions about the flexibility of platforms, and how efficiently they can be weaved into the existing coding process, given their high demand on computing resources.
"The problem with Copilot is that you still need advanced AI hardware, because the model is so big and so computing intensive," said Batchu.
The future of programmers
What does it mean to be a software developer? The answer has evolved along with the tools of the trade.
"The trend, until now, is kind of similar in a way," said Exterman. "All the software development ecosystems are trying to minimize the amount of coding work that developers need to do. It started, for example, with libraries 30 years ago, and more than that."
"Copilot guesses the exact code I want to write about one in ten times, and the rest of the time it suggests something rather good, or completely off."
CEO and co-founder of Marmelab
In a couple of decades, as AI-assisted tools mature, its addition to the software development process could bring lasting impacts to the profession. Experts see a new type of software developer profile will emerge with more assistance from AI.
"I definitely think it's a move to a more generalist than specialist," said Mekel-Bobrov. "The language specific requirements will either loosen or go away completely."
AI platforms such as GitHub Copilot, once ready for enterprise-grade deployment, will cover the ground between human specification and the code execution. This impacts how businesses see software engineers and the role they can perform for businesses.
"I think it will enable software developers to act more in the capacity of software designers, for lack of a better term, rather than focusing more on the implementation," said Mekel-Bobrov. "It would allow them to spend more time on the design and creative side of the software development process, and less on, or not at all, on the rote tasks."
With AI tools that can convert natural language into snippets of code, or even whole applications, companies can iterate faster. From the perspective of enterprise business units who turn to IT for solutions, software developers will evolve to software problem-solvers, according to Batchu.
"In many ways, software craftsmanship is going to start happening," Batchu said.
Article top image credit: Adeline Kon/CIO Dive