Large Language Models (LLMs) have significantly improved their coding generation capabilities, leading more and more software developers to rely on tools like GitHub Copilot in their daily work. Tools like Cognition AI’s Devin AI even promise to be fully autonomous software engineers.
This progress raises an intriguing debate, a challenging question that causes concern for many: Could AI replace software developers?
Today, AI as an Assistant, and in the Future?
The way software is developed has evolved tremendously over the years. We don’t need to go back as far as punch cards; we can consider more recent times. Young developers today may not imagine what it was like to code before there were IDEs capable of suggesting or auto-completing code. Nor how it was done before StackOverflow existed.
Similarly, it is very likely that developers a few years from now will not conceive of development without virtual assistants like GitHub Copilot helping them write code faster and with less effort.
Today, it is still common for these tools to generate low-quality code, make mistakes, hallucinate, and require precise prompts and the developer’s sound judgment for the code to be successful. The models are trained on existing code, which is not always of high quality, and they have limitations in generating ideas beyond their training dataset. Critical thinking and problem-solving are not yet among their capabilities.
However, given their rapid evolution, it is not unreasonable to imagine that current limitations may disappear in the coming years, prompting the question: Will there come a time when we can’t imagine a person writing the code for an application, instead of an AI directly doing it for us based on our specifications? After all, these models are trained on millions of code repositories, encompassing more technologies and frameworks than a programmer could hope to master over their career.
Exploring the Future of Programming Through John Carmack’s Perspectives
Recently, two tweets from John Carmack have caught the attention of those pondering this question, offering interesting insights into the evolution of programming in the age of artificial intelligence. For those who don’t know him, John Carmack was the co-founder of id Software and the lead programmer behind iconic video games like Commander Keen, Wolfenstein 3D, Doom, and Quake. After his influential career in the video game world, Carmack was CTO of Oculus VR before founding a startup dedicated to developing Artificial General Intelligence (AGI).
In his first tweet, Carmack shares a private conversation with someone considering a career in software engineering. The person expressed concern that AI might make their future job obsolete even before they finish their studies. Carmack’s response emphasized the importance of developing product-centric skills, reminding us that software is simply a means to meet people’s needs. Whether writing code manually, leveraging an assistant, or guiding AI to do the work, each approach remains a valid method of generating business value.
In the second tweet, Carmack responds to a statement by Jensen Huang, CEO of Nvidia. Huang suggested that instead of everyone learning to code from a young age, technology should evolve to solve programming challenges using natural language. Carmack reaffirms that the true value does not lie in programming itself, but in the ability to solve problems. Those who can tackle complex problems will continue to add significant value, without programming skills being a barrier.
The Challenge of Adding Value in the World to Come
It’s fascinating to think of programming as just another tool, another way to solve problems, the true skill of a software developer. Code generation via AI will enhance productivity, saving time on standard code, on repetitive and automatable tasks, where the developer adds less value.
I’m not sure if AI will be able to handle complex requirements in the future, with integrations between systems and other similar challenges. But undoubtedly, specific business knowledge, understanding the needs of particular users, and how to add value to them will become increasingly critical. It’s unlikely that AI could develop a tailor-made product that stands out from the established, something different from what it has been trained on.
AI will help us solve problems faster and more efficiently, but it won’t do it for us. Therefore, AI may make programming itself less relevant and will undoubtedly change the way we work, just as abstractions and high-level languages did in the past. But I would venture to answer the original question by saying no: AI will not replace software developers. After all, whether programming entirely by hand or relying on AI, we will continue applying technology to improve people’s lives.
By Christian Smirnoff, Software Head Architect at Baufest.