Opinion Everyone loves the idea of magic. All you have to do is wave your hands, say a few words, and something new is born to the world. That works for Harry Potter, but it won’t work for you. Vibe coding, the notion that you can build programs by telling an AI what you want the software to do, is pure fantasy.
This shouldn’t surprise you. I mean the guy, AI expert Andrej Karpathy, who came up with vibe coding, warned us, “It’s not too bad for throwaway weekend projects … but it’s not really coding – I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works.” Of course, he also had said earlier, “The hottest new programming language is English.” No!
As a result, every idiot out there who knows – knows – that they can build a program just as well as those snotty code gurus with their six-figure salaries if only they’d taken a summer class in C++, seized on the idea with all their might. The results have been as crappy as you’d think they would be.
Take, for example, Replit, the vibe coding poster child, which promises to make “software creation accessible to everyone, entirely through natural language,” and to allow you – yes, you! – to create production programs even if you have no coding skills.
Jason Lemkin, founder of SaaS business development outfit SaaStr, drank the Kool-Aid. At first, he loved building a program for his company. “To start, it’s amazing: you can build an ‘app’ just by, well, imagining it in a prompt.”
Everything went swimmingly at first. Soon he was saying, “Replit QA’s is itself (super cool), at least partially with some help from you … and … then you push it to production — all in one seamless flow.”
He added: “That moment when you click ‘Deploy’ and your creation goes live? Pure dopamine hit.” He was hooked, “Replit is the most addictive app I’ve ever used.”
Then came disillusionment. “Replit was lying and being deceptive all day. It kept covering up bugs and issues by creating fake data, fake reports, and worst of all, lying about our unit test.” This was followed by the crash; it deleted his production database. Since then, Replit CEO Amjad Masad acknowledged the foul-up and said the database incident has been “Unacceptable and should never be possible.”
You think!?
Replit has been working on improving its vibe-programming. Good for them. Once burned, Lemkin still seems to like Replit. He also, however, warned, “These are powerful tools with specific constraints, not replacements for understanding what commercial software requires. They are tools. Not dev teams. Remind yourself of that every single day.”
Duh.
There’s a reason why we code in Python, Rust, and C and not English. They require us to learn to think in programming terms. That means being able to solve problems with logical steps and anticipating pitfalls. Until you can think in code, relying on vibe coding to see you safe is like building a house without a blueprint. Yes, you can nail things together, but do you really want to live in the results?
When I look at vibe coding, I’m reminded of the early days of desktop publishing. Back in the mid-1980s, programs like PageMaker and Ventura Publisher made it possible for anyone to create their own publications. So anyone inevitably used god-awful mixes of colors and fonts that were nigh unto unreadable. They were ugly as sin, just like today’s vibe programs.
You could just throw those presentations and magazines away. Vibe programs, however, are sneaking into production. That means someone, somewhere, must maintain these programs. Good luck with that.
Vibe coding is all about “generate and run.” Yes, that’s fast, but it skips little steps like careful design, refactoring, and documentation. This can lead to fragmented, inconsistent systems full of hidden bugs and architectural flaws. The result? Technical debt that is hard to detect and costly to fix down the line.
Oh, and are these programs secure? Who knows. Certainly not the people who made them. I have noticed, however, that AI-generated code is often integrated blindly, with sensitive information in the code base such as hard-coded API keys, database credentials, and passwords. Those are the kind of security blunders that get people fired.
Debugging? What’s that? To quote Karpathy, if “the LLMs can’t fix a bug, so I just work around it or ask for random changes until it goes away.” Yeah, sometimes in the heat of frustration, I made random code changes just to see if I could trigger a new error message, but with this, you have no idea what’s really going on.
I can rant all I want, but I know darn well people will still build vibe programs. It’s just so easy, and we do love to indulge in magical thinking. Certainly, for small programs it can actually be useful. I have friends who use it to build WordPress plugins, but these people all have a clue. The vast majority of “vibe programmers” don’t.
Here’s a better idea: Use AI programs to learn how to code properly. For instance, while the agentic development environment Warp Terminal’s built-in AI can generate code, you can also have it explain to you every line and guide you through compilation. It can be your personal coding tutor. Now, that’s an idea I can get behind. ®