AI-assisted development is one of the hottest new use cases for artificial intelligence. By using AI to streamline programming, AI-assisted development tools promise to help developers work faster while making fewer errors.
But can AI really revolutionize the way developers write software? Should you expect AI-assisted development to become the norm, or just an approach used in certain niche cases? And is it really all that different from other code-automation technologies, like low-code programming? Read on to find out.
What Is AI-Assisted Development?
AI-assisted development is the use of AI to guide developers while they write code.
AI-assisted development tools can perform a wide range of tasks to help developers. They can automatically generate code, potentially reducing the number of keystrokes that programmers make manually by half. AI-assisted development can also help coders catch bugs, identify security vulnerabilities and avoid sloppy coding practices that make it harder for others to understand their code.
What Problems Does AI-Assisted Development Solve?
In a nutshell, AI-assisted development helps programmers solve some of the most basic challenges associated with writing code: ensuring that it is clean, secure and bug-free.
In most cases, there is a virtually infinite number of ways in which a developer could write the code required to achieve a certain task. AI-assisted development offers a means of automatically guiding developers as they write code to help them adhere consistently to best practices (as the AI-assisted development tool vendor defines them, at least).
At the same time, there are obvious efficiency benefits from AI-assisted development. By auto-generating a healthy portion of the code that programmers write, AI-assisted development tools can help programmers write more code in less time. Or, they could empower companies with small development teams to create more apps than they could build using a fully manual approach. Both benefits are highly advantageous in a world where there is a persistent shortage of developers, combined with ever-increasing pressure on businesses to build apps.
How New Is AI-Assisted Development?
Although AI-assisted development has become a hot topic only in the past couple of years, many of the concepts and technologies behind it are not entirely novel.
In many ways, you could argue that AI-assisted development is an extension of no-code and low-code programming, a methodology that also relies on auto-generated code to help developers work faster. Low code and no code are different from AI-assisted development in that the former are usually powered by prebuilt modules that developers string together. AI-assisted development is geared more toward automatically generating original code without relying on preconfigured modules. Still, the techniques are not wildly different.
Along similar lines, the ability of AI-assisted development tools to spot bugs is not unlike the functionality long offered by Static Application Security Testing (SAST) and Source Composition Analysis (SCA) tools. These types of tools can also detect security problems or other potential issues within source code. AI-assisted development is a little different in that it can detect problems as the code is being written, whereas SAST and SCA scans are usually performed after code exists. But, again, there’s not a huge difference in functionality here.
At a more basic level, you could even say that IDEs with code auto-complete features, which have been around for quite a long time, are a primitive form of AI-assisted development.
So, it’s fair to say that AI-assisted development brings coding automation to a new level and makes it more interactive. But it’s not exactly a radically new type of solution, categorically speaking.
Who Should Use AI-Assisted Development?
Who needs AI-assisted development, then?
One way to answer that question is to think about the extent to which different teams already rely on code-automation tools. As noted above, AI-assisted development builds on categories of coding tools that are already in widespread use today, like low-code and no-code solutions, or SAST scanners. If your organization uses tools like these, it’s likely that you’ll benefit from AI-assisted development, too.
But if you write truly complex applications that are difficult for even the most sophisticated AI to understand, let alone help to write, it’s unlikely that today’s generation of AI-assisted development tools will be of much benefit.
Getting Started with AI-Assisted Development
The market for AI-assisted development tools remains small, and enterprises looking to deploy such solutions today have limited options. In general, the best place to look is at vendors in the low-code/no-code space, some of which are actively expanding their products to support AI-assisted development use cases. Some code security companies are also dipping their toes into the AI-assisted development market. For example, Snyk acquired DeepCode, an AI-assisted coding startup. There are also some independent startups in this space, such as Kite.
So far, the open source community has produced very few tools for AI-assisted development. That may change as this category of technology continues to grow. But, for now, if you want an AI-assisted development tool, you’ll likely have to go with a commercial solution (although some tools in this niche are available free of charge).