AI Won’t Replace Software Engineers

June 1, 2024

software engineer coding

The founder and CEO of NVIDIA, Jensen Huang, recently said that thanks to AI, people won’t have to learn programming anymore, as natural language will become the new programming language. He is not the only one to think that; Andrej Karpathy, the former Director of AI at Tesla and a member of the founding team at OpenAI, recently said that the new hot programming language is English. Everywhere on tech Twitter, people are talking about how AI will replace jobs, starting with the job of a software engineer.

The hottest new programming language is English, Tweet by Andrej Karpathy

Now, it is true that as with every technology, the changes brought by AI will destroy some jobs and create new ones. But even if I see all the discourse about English being the new programming language and AI completely replacing software engineers as more aspirational than concrete, I have to stress how wrong viewing the impact of AI in that lens is.

Right now, AI systems can’t plan and reason. Programming is precisely about structuring logic, solving problems, and designing systems that can effectively accomplish tasks. So, how can a system that doesn’t plan nor reason, or doesn’t even recognize that if A is B then B is A reliably, program? People are rightly amazed by the fact that large language models (LLMs) are quite good as programming assistants. But anyone who uses them regularly knows how many failure modes these LLMs have when it comes to programming. The LLM will often suggest a program that doesn’t work, invent methods that are not part of a package, or were part of an older version of it but no longer supported. LLMs struggle with packages not in their training, even if you provide the documentation. LLMs do not respect programming patterns that are useful for developing maintainable code. LLMs are good for small snippets of code but increasingly bad as system complexity increases.

So no, AI won’t replace software engineers. Software engineering is more complex than just generating lines of code. It’s about constant learning, it’s about finding new or innovative ways to solve problems while respecting the constraints of a programming language, it’s art, it’s a continuous process of improvement and adaptation.

Computers and other non-human machinery are not “software engineers”. It is just code-generating software. Automated software cannot problem solve (think critically and iterative teamwork) and because software doesn’t know anything, it is extremely prone to devastating bugs., Tweet by Cher the Dev

AI will make programming more accessible; it already has. People can now build simple scripts in hours instead of days, and these scripts can help them in their daily tasks and thus improve their productivity. We have to see AI’s impact more on the productivity-boosting side and less on the replacing entire classes of jobs side. AI tools and technologies are augmenting the capabilities of humans, making it easier for more people to engage with programming and technological development, but the creativity, insight, and expertise of human engineers remain indispensable for addressing complex problems and innovating in the field of software development.

In April of last year, I founded Rimbaud Inc. It was established to investigate the enhancement of human productivity through AI. In April 2023, I launched our inaugural consumer product, Rimbaud AI, a writing assistant that harnesses LLMs to assist writers in refining their texts. In November, I introduced Discute, an app that allows people to chat with their knowledge bases. Last month, I built a magistral, a ChatGPT clone based on Mistral AI models, but had to shut it down because of high usage. All these experiments allow me to have skin in the game, to actually see what works and what doesn’t, and craft theories of the future based on actions and not hype and speculation.

As a consequence, my experiences have provided me with a unique insight into the practical applications and limitations of AI in enhancing human productivity. AI will augment humans, not replace them.

I recently read an article written by a venture capitalist, and titled "The end of software". You can read it here: The end of software. It compares the evolution of the media industry with the anticipated changes in the software industry.

Before the internet, creating and distributing media was expensive, leading to a predictable subscription-based revenue model. The internet drastically reduced these costs, leading to a surge in user-generated content that didn't need to make money, fundamentally altering the media landscape. Traditional media companies, with their higher costs, struggled to compete with these new platforms, shifting value creation to those controlling content distribution.

Similarly, software creation is currently expensive due to the high cost of skilled developers, leading to revenue models based on software licenses and SaaS. However, large language models (LLMs) are set to reduce software creation costs to near zero, prompting a proliferation of software akin to the explosion of user-generated content. This will disrupt traditional software companies, replacing them with numerous smaller solutions, much like how influencers replaced traditional media outlets.

The established metrics and business models for software (like SaaS and ARR) will become obsolete, as the reduced costs change the industry dynamics. Majoring in computer science today may become as outdated as majoring in journalism in the late 90s.

Here is my criticism of that article. Building software is just the start, distribution is the key. The internet has made distribution easier, but it has not made it free. Similarly, AI will make software creation easier, but it will not make it free. The cost of software creation is not just the cost of writing code; it is the cost of understanding the problem, designing a solution, implementing it, testing it, deploying it, maintaining it, and improving it. AI can help with some of these steps, but it cannot replace the human expertise required to navigate the complexities of software development.

AI will change the software industry, but it will not end it. The value of software engineers lies not just in their ability to write code, but in their problem-solving skills, their creativity, and their ability to understand and adapt to complex systems. AI will augment these skills, making software engineers more efficient and productive, but it will not replace them.

AI will not kill software. As the cost of producing software decrease, we have to expect a proliferation of software solutions, but the need for skilled software engineers will remain. The software industry will evolve, but it will not disappear.