The Vibe Coding Apocalypse

1 month ago 7

Vibe coding, or letting an LLM write code for you, is here to stay. It should be clear to anyone who has ever tried it or looked at a demo of it that it will have big consequences for the software development industry as a whole. But while some believers have been proclaiming the doom of all software engineering jobs, reality is not as apocalyptic as it may seem. Let’s have a look at the present, potential and road to engineer replacement.

The Present is Both Ups and Downs

While the marketing materials and demos of the great AI companies, such as OpenAI, Anthropic, Facebook or Google, often are very impressive, the reality of their AIs become quite different when you try them yourself. LLMs tend to be very wordy, and they “hallucinate”, which is just a polite way of saying that they lie to you without knowing it. I’ve personally been recommended to pursue certifications that didn’t exist, clicked on source links pointing to non-existent websites, and been told plenty of lies about what certain specifications say about various topics. That being said, LLMs are often excellent at answering complex questions accurately enough, which many times makes them a big improvement over traditional search engines.

To me, coding with AI has been a quite tumultuous experience. Sometimes the generated code magically works right of the bats, which feels great! But other times, I’m not even sure that the LLM understood what I wanted it to do—despite my best efforts. Also, even when the code works, there is pretty much always plenty of verbosity and subtle bugs. At this point, I don’t trust LLMs to generate more than example code, which is a quite handy way of exploring ideas, libraries and APIs. I’m not alone in my mixed feelings about AI-assisted coding. In fact, a a recent study by METR [1] found that, on average, developers using coding LLMs self-report as being 24% more productive, while being observed to be 19% less productive. Yes, you read that right!

The Potential is What Scares Us

While the present of vibe coding is both impressive and disappointing, we do get terrified by its potential. It is not hard to imagine product owners or architects simply writing requirements specifications to an LLM, which would then implement whatever application it describes. Put bluntly, the coding assistants of today could become the de-facto software engineers of tomorrow. Such a transition would completely reshape the entire software engineering discipline, and would likely have massive ramifications on the workforce. Millions of people could loose their jobs, and the ones who remain would have to adapt to a new reality of how their work is carried out.

The prospect of becoming obsolete is chilling, to say the least.

But How Far Away Is It?

Can LLMs be improved to the point where the become just as general in their intelligence as a human software engineer—but be thousands of times faster? I believe the safe answer to this question is no. The reason for this is simple. There is not yet a specific enough definition of what general intelligence is for us to make a machine mimic it. Rather, all types of computing machines created up to this point try to replicate some aspects of intelligence. We know intelligent beings can remember things, make calculations, draw pictures, communicate, and so on. But we have no complete list of all things an intelligent thing can do and how it does them. We know that LLMs, to some extent, can replicate our capacities to use language, associate concepts, remember context and follow ideas in order. All of us who have used LLMs for a while know that there is something uncanny about them, however. They can talk, but they are not persons in the way we.

But do we need general intelligence to replace software engineers? We don’t. And this is where things get interesting! We know that plenty of money is spent making LLMs more accurate, faster, less noisy, and so on. At least a portion of these attempt are likely to be fruitful. There are probably also going to be some innovations along the way, making LLMs, or their successors, not have some of their limitations. For example, an LLMs is today incapable of knowing if what it says to you is true or not. This might be a solvable problem, or it might not be.

Alongside this wave of incremental improvements to the LLMs themselves, there are going to be new and improved tools that rely on them. A potential future tool could take a formal architectural description and turn it into a working application, creating the dreaded software engineer replacement. But developing such a tool with enough accuracy may not be feasible until we have programming languages, libraries, APIs, and other things we don’t know of today, optimized for being used by LLMs.

I think it is safe to say that LLMs will lead to a revolution of the software engineering industry, but I belive it’s going to take some time for this revolution to complete. We might be talking about a few years, or decades, or longer. A slow revolution is not as disruptive as a fast one, and is more likely going to leave plenty of opportunities for people to transition into new roles, tools or expertises.

So, don’t waste your worries on the vibe coding apocalypse. Rather, be curious about AI improvements, tooling and the evolving ecosystem of software engineering!

Read Entire Article