What GitHub’s Copilot tool reveals about AI’s future in software development
Software developers speak the language of computers. Conversational in commands and symbols, engineers rely on coding skills to create applications.
The tools that support developers are evolving, making the next generation of engineers more like training drivers who rely on algorithms to turn natural language cues into applications. With AI feedback, tools promise software applications that come together quickly and easily.
This is the essence of Copilot, a tool created by GitHub and OpenAI. Essentially, the platform is an artificial intelligence wizard that works as a virtual partner programmer for developers. Trained with code available in public repositories, Copilot is currently available with a technical preview.
GitHub Copilot uses OpenAI Codex, a GPT-3-based engine that “takes context out of comments and code, and suggests individual lines and entire functions instantly,” according to the company’s website.
While not the only tool that promises an AI-assisted software development process, it is potentially a step forward because it can leverage GPT-3’s machine learning capabilities to turn natural language into code, according to Arun Batchu , senior research director at Gartner. Somehow, it can alleviate the disconnect between business requirements and the software being built.
“That’s what’s so exciting for me about the potential of the new generation” of tools, Batchu said. “Raise the bar.”
With the smart tools that complement development, the software developer of the future will change to focus more on connecting business requirements with technology. But the tools that herald this change have not yet reached the level of maturity needed for widespread use and trust. They must first ensure their safety before a broad business-level adoption.
AI, the dream couple programmer?
In the growing marketplace of developer tool vendors, there were previously several solutions that functioned in the same space as GitHub. Providers such as Tabnine, Kite, and Codota can generate suggestions in real time, with the help of open source repositories and libraries.
But where other code finalization tools have allowed rapid prototyping or “skeleton” applications that developers develop, Copilot aims to take over this development process, said Usman Lakhani. , research director of Info-Tech Research Group.
“That’s where the Copilot tool is trying to make its way,” Lakhani said.
According to GitHub, although Copilot is trained in existing code libraries, “the vast majority of the code it suggests is uniquely generated and never seen before.” The company declined an interview request, but directed questions to the product FAQ section.
“I still think most companies … in general, haven’t seen any significant transformation in the AI software development lifecycle yet.”
I was Mekel-Bobrov
Director of AI on 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. When the GPT-2 was able to rely on 1.5 billion parameters to produce its results, the newest model can take advantage of 175 billion parameters.
“What is happening from the point of view of AI, and especially the new generation of AI that is based on deep learning, in the same way that it is elevating or transforming any other work, is clearly transforming the work of software creation itself, “Batchu said.
AI has spared few traditional redefining roles. In the supply chain space, automation rethought how warehouse workers work. Robots entered the realm of marketing, suggesting examples of effective marketing copy. Artificial intelligence has also sent many customer service inquiries once addressed by humans.
Tools like GitHub Copilot use AI to help engineers “figure out the shape of the app you need to create, but it won’t be the perfect one,” Batchu said.
“Copilot guesses the exact code I want to write one out of ten times, and the rest of the time suggests something pretty good, or completely out of place,” said Francois Zaninotto, CEO and co-founder of Marmelab, in a Hacker News post. . . “But when he guesses right, he seems to be reading my mind.”
Is technology already there?
Copilot is part of a larger trend: the potential of AI as a generative tool, as presented by Gartner.
Instead of being left out and helping, AI can produce on its own, whether this product is a more efficient marketing copy, new product delivery routes, new chemical compounds with therapeutic potential, or, as Copilot does. , infrastructure for applications and lines of code that feed it.
“I still think that most companies, certainly most large companies, but probably also smaller ones, in general, have not yet seen any significant transformation in the lifecycle of software development with AI,” he said. dir Nitzan Mekel-Bobrov, eBay’s AI director. .
Although versions of these applications already exist, the industry is still evaluating the long-term impact of AI on the software development process.
“Where I see the initial applications, or the first phase of this, is really applying AI to the edges of the existing process, rather than changing the process as a whole,” Mekel-Bobrov said.
“What is happening from the point of view of AI, and especially the new generation of AI that is based on deep learning, in the same way that it is elevating or transforming any other work, is clearly transforming the work of software creation itself “.
Senior Research Director at Gartner
When it comes to code output, there is the question of whether an algorithm is capable of applying engineering best practices when producing code on its own.
“I felt like, I was reviewing, I was trying to find this needle in the barn, initially,” said Lakhani, who had access to the technical revision version of the product and found that most of the code did not comply with best coding practices. . . “However, that doesn’t mean it doesn’t get better.”
Security will be another factor that executives will want to review if AI peer programmers are widely adopted. Unsecured code reaching a business application causes problems.
One of the biggest risks of the automatically generated code is that “they can comply with nine out of 10 good practices, but this good practice that is lost is the one that will expose a company to more risk,” Lakhani said.
In one study, researchers gave Copilot 89 different scenarios to complete and produced 1,692 programs. At first glance, about 40 percent of the code contained cybersecurity vulnerabilities, according to researchers Hammond Pearce, Baleegh Ahmad, Benjamin Tan, Brendan Dolan-Gavitt, and Ramesh Karri.
But some believe that AI tools can make software development more secure. Using verified code databases to create software could reduce the chances of inadvertently adding security vulnerabilities to an application using newly written internal code, according to Dori Exterman, CTO of Incredibuild.
“As a developer, I’m more restricted, in a way, to understanding the security vulnerabilities that the code I generate can create,” Exterman said.
Aside from security concerns, there are questions about the flexibility of platforms and how effectively they can be integrated into the existing coding process, given their high demand for IT resources.
“The problem with Copilot is that you still need advanced AI hardware, because the model is very large and requires a lot of computing,” Batchu said.
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, so far, is a bit similar in some ways,” Exterman said. “All software development ecosystems try to minimize the amount of coding work that developers have to do. It started, for example, with libraries 30 years ago, and more than that.”
“Copilot guesses the exact code I want to write one in ten times, and the rest of the time suggests something pretty good, or completely disabled.”
CEO and co-founder of Marmelab
In a couple of decades, as AI-assisted tools mature, their incorporation into the software development process could have lasting impacts on the profession. Experts see that a new type of software developer profile will emerge with more AI help.
“I definitely think it’s a step towards a more generalist than a specialist,” Mekel-Bobrov said. “Language-specific requirements will be relaxed or completely gone.”
AI platforms like GitHub Copilot, once ready for enterprise-level deployment, will cover the ground between human specification and code execution. This affects the way companies view software engineers and the role they can play for companies.
“I think it will allow software developers to act more on the ability of software designers, in the absence of a better term, rather than focusing more on implementation,” Mekel-Bobrov said. “It would allow them to devote more time to the design and creative side of the software development process, and less, or no, to the memory tasks.”
With AI tools that can turn natural language into snippets of code, or even entire applications, companies can iterate faster. According to Batchu, from the perspective of IT business units that use IT to find solutions, software developers will evolve into software problem solvers.
“In many ways, software crafts will start to happen,” Batchu said.