Vibe Coding is not the Future

Vibe Coding: With Great Power Comes Great Responsibility

“Vibe coding”, a term coined by Andrej Karpathy is, as he describes, when “you fully give in to the vibes, embrace exponentials, and forget that the code even exists.” This is a new way of creating software with LLM’s and the new wave of AI Coding tools like Cursor. This approach is allowing designers, product managers and other traditionally non technical roles to create software by simply describing what they want. This has led many to speculate that vibe coding represents the next major evolution in how we build software.

Some are saying this is the future of coding, and even that you need to vibe code or retire. Looking back on the history of software and coding, we have seen a number of paradigm shifts. From programming in physical punch cards, to digital. From coders writing in binary to higher level programming languages like C++, to modern languages like Javascript which abstract things like memory management. You could look at this as a further abstraction of coding to human language. Some are even proposing specific LLM focused languages based on this like SudoLang.

I don’t think this is completely wrong. I think what coding abstraction layers have done is allow more people to write more software. AI Coding will definitely create an easier entry point for more people to create software. However I think this is missing part of the picture. “Vibes”, suggest a carelessness and lack of effort or craft.

There’s a level of responsibility and ownership that comes with creating software. Someone needs to be on the hook when things go wrong and be able to fix it. Pointing to the AI when things fail isn’t going to work. “Vibe coding” suggests not thinking about the code at all. It can easily get you in a place where you don’t understand how things are structured. If this is the case, when things go wrong, you’ll need to spend time learning the codebase and understanding the possible rat’s nest of code that was created. This will take a long time and possibly get you in a worse place than if you had just written it yourself.

The future of coding is working with AI — not handing over the wheel.

AI is quickly becoming an invaluable tool in making software. But it is important we use it the right way. If your only goal is to get something working — without caring how clean, reliable, or understandable it is — then sure, go ahead and vibe code. That can be great for quick prototypes or early design ideas when speed matters more than structure.

But if you’re building real software that people will actually use. It’s important that you have skilled engineers who use AI as a partner, as a teacher and collaborator. To speed up building things in a comprehensive way that they understand. This is not ‘vibe coding’ but utilizing AI as a tool in the coding process. This puts the impetus on the programmer to use it the right way and not use it to avoid deep thinking or planning.

You’ll be in better shape if you think like a programmer. Plan out what and how you want it built. Explain your thinking to AI for critique and holes in your plan. Break it down into steps. Use AI to learn new concepts or discuss challenging parts or systems you may need. Be the captain of the ship and let AI help you along the course you are charting.

I used to ‘vibe code’ before AI. It was lazy hacking on weekend personal projects or prototypes. I’d mess around, just hacking things together in rather ugly ways to get something working. Then once I had something I liked, I’d go through and clean it all up to actually get the code looking like something I’d want to work with.

It’s easy to vibe. It’s harder — and far more valuable — to build with purpose. Make sure you’re leading the work, not just following the vibes.