Will artificial intelligence (AI) lead us into a no-code world?
That may be a sweeping statement, but there are certainly indications that the next generation of software developers may not come from a software engineering background — with high-level instructions and generative AI being the crucial skills to create the next era of software.
This article explores the state of play today and then turns to industry experts to see how the next decade may play out.
Current Applications of AI in Software
There are several ways that AI tools can assist developers in creating and optimizing software applications:
Automated code generation: One of the most compelling applications is using AI-powered tools to analyze the requirements for a piece of software, understand design patterns, and generate code snippets or even complete modules. This not only accelerates the development process but also reduces the likelihood of human coding errors.
Enhanced debugging: Machine learning algorithms can analyze code patterns, predict potential issues, identify bugs, and suggest fixes to vulnerabilities, reducing the amount of time and other resources spent on debugging. As algorithms continuously learn from new data, they increase their capability to identify and address complex coding issues.
Code optimization: AI tools can analyze code execution patterns and recommend ways to enhance performance, such as streamlining algorithms or suggesting more efficient data structures.
Natural language processing (NLP) to Understand User Requirements: NLP can bridge the gap between technical specifications and user expectations. NLP algorithms can analyze briefs, documentation, and feedback to help developers create software that meets users’ needs.
Automated testing and quality assurance: AI-driven tools can automate the testing process and learn from previous test results, identify patterns in the occurrence of defects, and predict potential problems. This speeds up the testing process and improves the software’s reliability.
Continuous integration and deployment (CI/CD): AI-powered automation can enhance the efficiency of CI/CD pipelines by optimizing the deployment process, detecting integration issues, and facilitating seamless, continuous delivery. This drives faster release cycles, reducing time-to-market for new software products and updates and enabling development teams to respond quickly to changing requirements.
How AI May Take Over Software Development
“Within the next three to five years, the vast majority of software that is going to be created in the world is going to be created by people who don’t have any software engineering background whatsoever — maybe not even knowledge about code, about architecture, about cloud services,” said Eiso Kant, co-founder and chief technology officer (CTO) at Poolside, at the recent ai-Pulse conference in Paris.
“What we see is that the world is very likely to move to a place where we’ll start having capable enough models that can go from high-level instruction tasks — help me build accounting software, or understand something in this genomics data, to an actually AI-led, human-assisted conversation that leads to fully running software.”
Current co-pilot code-writing tools often make mistakes and are far from being reliable programmers. Kant explains:
“Now they can give us valuable recommendations, they can provide us with ideas, they can at times give us code that works, and at times provide us with code that might be directionally correct but doesn’t work at all.
“But that world will continue to change as the capabilities of these models increase and improve, to get to the point where we’re truly as engineers pair programming with a system that is becoming as capable as us — and someday more capable than us.”
Source code is one of the forms of information that neural networks can generate without human feedback, Kant said.
“We have the ability to take something that a neural network generates based on an instruction, a set of code and actually run it and see what happens — does it compile, does it work, does it throw a whole bunch of errors, does it pass certain tests, does it actually lead to the outcomes that we’re looking for?”
“We look at the ability to write code and create software as a proxy task for reasoning and planning,” Kant continued.
“The further you push the capabilities for an AI to create software, the further you’re pushing the capabilities of reasoning because the vast majority of code is just that. It’s just a language that we’ve created to do structured reasoning to deal with data to deal with effects on environments.
“We want to expand that superpower today for developers and one day for everyone to be able to have that, and we think that leads to a lot of innovation in all of the areas that actually matter —healthcare, education, housing, all the things that really touch our lives.”
Stages of AI Dominance in Software
According to Poolside, there are potentially three stages in the evolution of AI software development.
- Stage 1: AI systems assisting developers with editing code, having context-aware knowledge of the codebase and the knowledge that sits within the organization. Over the next year, AI systems could evolve into platforms on which developers can build applications — essentially co-pilots everywhere.
- Stage 2: transitioning from human-led and AI-assisted software development to AI-led and human-assisted development would allow anyone to build software. Users would be able to prompt AI tools to build applications based on descriptions of how it should work and what it should look like. The AI would have an intelligent enough model and understanding of the world to build fully operational software within minutes. This would eliminate the weeks or months of back and forth required to make an application that meets user requirements. Development tasks would no longer be bandwidth-limited by the number of available engineers collaborating to write code; GPUs would carry them out.
- Stage 3: the software-specific AI capabilities would be applied to other fields for profit, eventually replacing the need for software altogether. As development has advanced in recent years, application programming interfaces (APIs) have replaced some of the code writing required, and AI models can already replace thousands of lines of code with simple prompts. More advanced models can likely take this a step further by replacing much of the need for code. “Models are eating more and more of the software over time because they can do things that before you would be required to write code for. But now the model is capable of doing it,” Kant said. “The model itself doesn’t need to write code anymore at all because you’re able to start defining your applications and the software that you want as purely neural networks.”
While handing over complete control of software development to AI algorithms might raise concerns about loss of control, “auto regressive large language models (LLMs) in no way (in their architecture and where we’re at) have any sign or any indication of becoming a runaway train. It’s very easy to make the conclusion that as we increase capabilities in models, we will lose control,” Kant said.
“We need to truly understand what the impact of control of the systems and models is, but I don’t think it is fair today to assume that increasing capabilities automatically means loss of control over these systems. This is not how they’re being built.”
AI is poised to take over various aspects of software development, from automating code writing and testing to potentially replacing the need for code altogether as models become more sophisticated.
Tasks that previously took large teams and extended periods of time to complete could be handled by AI models — in very quick time — and create new possibilities for the types of applications that emerge.
Developers will need to carefully define the boundaries of these models as their capabilities increase, ensuring that humans remain in control of these systems.