Until recently, coding involved repetitive tasks, and required knowledge of many minute details. These aspects of coding detracted from the truly creative work that developers enjoy, and they slowed developers down.
Now, artificial intelligence technology promises to eliminate much of that repetitive work, and developers are no longer thrown off task by having to search the web for those minute details.
The technology works similarly to auto-complete in word processing but writing code instead of plain language and completing whole functions at a time.
AI Helps with Algorithms, Boilerplate Code
Among the latest offerings in AI-powered is Github’s Copilot, an AI-powered pair programmer tool available to all developers for $10 a month or $100 per year.
The company claims Copilot can suggest complete methods, boilerplate code, whole unit tests, and even complex algorithms.
“With AI-powered coding technology like Copilot, developers can work as before, but with greater speed and satisfaction, so it’s really easy to introduce,” explains Oege De Moor, vice president of GitHub Next. “It does help to be explicit in your instructions to the AI.”
He explains that during the Copilot technical preview, GitHub heard from users that they were writing better and more precise explanations in code comments because the AI gives them better suggestions.
“Users also write more tests because Copilot encourages developers to focus on the creative part of crafting good tests,” De Moor explains. “So, these users feel they write better code, hand in hand with Copilot.”
He adds that it is, of course, important that users are made aware of the limitations of the technology.
“Like all code, suggestions from AI assistants like Copilot need to be carefully tested, reviewed, and vetted,” he says. “We also continuously work to improve the quality of the suggestions made by the AI.”
GitHub Copilot is built with Codex — a descendent of GPT-3 — which is trained on publicly available source code and natural language.
“Because it was trained both on source code and natural language, you can write a comment in English, and then Codex will suggest the code that follows,” De Moor explains. “In fact, it can even write an entire function or class just given its description in English.”
Future AI Capabilities Could Assist with Debugging
Tabnine CEO Dror Weiss says in the future, AI assistants will be able to review code for developers, create tests automatically, assist with debugging, and do clever automated maintenance operations on systems.
“Eventually, every activity that can be automated, will be automated,” he says.
From his perspective, a critical feature for organizations is the ability to integrate the specific best practices and code patterns for projects and organizations.
“Using this kind of customized AI, organizations will benefit not just from acceleration but also from better consistency and quality of the code,” he explains. “Another benefit is reducing the time it takes for developers to become highly productive when joining a new project.”
One major advantage of AI-assisted coding tools is context-aware code completion.
Microsoft’s Visual Studio IntelliCode, for example, is a set of AI-assisted capabilities that enable developers to efficiently complete code with features like argument completion, code formatting, and style rule reference.
IntelliCode is trained on the code of thousands of highly rated open source projects on GitHub, and it uses context from the current code to make relevant recommendations.
Since launching IntelliCode, Microsoft has made updates such as whole-line code completions and refactoring and suggestions that enhance repeated edit experiences to save time for developers.
Roadmap to AI Coding Assist is Key
For organizations planning to implement a strategy involving AI coding assistants, Weiss says making a roadmap is key.
“Organizations need to think strategically and have a vision of how they want to leverage AI, even as some essential functionality isn’t yet available in any of the products in the market,” he says.
He explains a logical first step toward implementing AI assistance would be identifying a specific group of developers and let them use AI based on pre-trained models that learned code patterns from publicly available code.
After a successful implementation, organizations can start rolling out to other groups. In parallel, they can tailor their AI assistance to their needs by creating custom AI models based on their code.
De Moor also points out developers spend much of their time on other tasks, and soon, those other tasks will also benefit from AI assistance.
Examples of these other tasks that are ripe for AI assistance are code review, testing, and refactoring.
“Will this change the job of developers? Sure, but for the better,” De Moor says. “I do not foresee a future where Copilot produces anything useful without human input, but I do see unbridled human creativity, no longer bogged down by irrelevant detail.
He says programming is now about design (decomposing a large problem into smaller ones), and then specifying what the smaller blocks should do — and the AI will fill in the details.
Weiss adds that as every company is becoming a “software company,” software development is every organization’s most strategic and resource-constrained activity.
“Companies are starting to meet the limits of how many developers they can get and getting smaller teams more productive is paramount — even more so in a downturn as teams could be understaffed,” he says. “We believe that AI is the most effective way to make developers and teams more productive and will be the natural next step for every organization that has adopted basic DevOps and CI platforms.”
Original post: https://www.informationweek.com/software/the-power-of-ai-coding-assistance