Every year I think the bar for acceptable software quality couldn't get any lower, and I get proven wrong again and again. I don't get the point of this. Why bother doing something if you're not going to either 1. do it well, or 2. use the exercise as a way to get better? This sounds like building a chair by just randomly nailing pieces of uncut wood together until it barely looks like a chair and supports your weight.
I've seen something similar play out badly, in the context of young Indians (and other South Asians) who are underconfident in their use of English but need to use it in professional contexts. Some I know personally have gone from asking for editorial help on their drafts to completely surrendering to LLMs for all their output. I can't imagine it has helped their self-confidence. From the outside it almost seems they've given up on trying to express themselves entirely.
Surrendering is an excellent way to put it. With the increasingly ubiquitous access to LLMs that are (for all intents and purposes) good enough - I think we're going to see the average person's proficiency at any skill which is fundamentally a "craft" (i.e. writing, foreign language, music, coding, etc.) decrease dramatically.
In software - rarely do you know beforehand that you're building a chair.
Even when you're building in an existing category of products (say, databases), there are still lots of variations and trial and error needed to get "what we need" defined clearly.
I'd say "vibe coding" is just a new name for "exploratory programming" or good old "prototyping"
Because sometimes, the journey is not the destination, and people really just want to get somewhere.
It honestly sounds like reprimanding somebody for sitting on the floor for a bit when they're tired, or ordering an Ikea chair, when a woodworking tutorial is right there on Youtube.
That's my sentiment as well. It seems you can actually go lower and it's so sad and I think at some point that will turn into dangerous as well... The amount of people that actually care what happens when you run code is miniscule. They don't understand that code is not some ideal abstraction. Code actually exists and executes in the real world on real hardware.
A week or so ago I gave a talk at a game jam discussing some of these topics and most of the audience being people in their 20's didn't understand or give weight to what I said at all. Only a few people from that big audience came after and expressed interest to learn more. Hope is not lost, but we have to actively push back and fight against the nonsense that comes from all sides.
I can't wait for the AI, AI bros and hype surrounding it to crash and burn in a few years. It's not that these new technologies are not useful - they are. And they have their place, but quality matters. DO NOT SURRENDER YOUR FACULTIES TO "AI". You get good by struggling! If you don't want to get good at this - then don't do it anymore. As another comment in another thread around code snippets said earlier - "No snippets, no LLMs, no autocomplete".
> This sounds like building a chair by just randomly nailing pieces of uncut wood together until it barely looks like a chair and supports your weight.
I feel this—I've really enjoyed working on some throwaway projects where I can work like this and not sweat the small stuff at all. That said, the one area that's tricky to reconcile in this mode is security: in my (fairly extensive) experience with the current state of AI coding assistants, prompting for security is nowhere near sufficient for me to be comfortable putting a web app on the internet without reviewing the code carefully.
Just in the past few weeks I can think of several instances where an AI assistant added sensitive API endpoints with no authentication whatsoever, updated API endpoints with methods that didn't follow my guidance on authorization or existing authorization patterns in the codebase, or created templates with brutal potential for XSS.
I'm all in on coding with LLMs and use them every single day, but I'm quite confident there will be plenty of work for security engineers as we explore this future.
My fear is that if I were to start doing this, I would stop engaging in the difficult aspects of building something. And I think the skills I have now would atrophy.
Not in my experience. You can still do everything as diligently and as manually as you find necessary or useful.
On the other hand, the bar to start exploring something in the first place (quite possibly sloppily, quite possibly containing a lot of bugs) has significantly gone down, and I personally find it amazing.
There are undoubtedly many kids learning to program for the first time, using a similar methodology. I'm very curious to see what sorts of things "AI native" developers build in the coming years.
I get why some people are skeptical of “vibe coding”—it sounds like AI blindly generating code and hoping it works. But that’s not really what’s happening.
It’s not about replacing solid engineering principles or craftsmanship—it’s about shifting how we interact with code. Instead of micromanaging every function from the start, you set intent and iterate quickly. It’s more like pair programming with an AI that can help you move faster, not handing over control entirely.
I wrote about this after using DeepSeek R1 + Cursor to prototype an AI chat interface for my Raspberry Pi NAS. It still took over 100 prompts to refine, but it turned what was in my head into something real and functional—faster than if I’d started from scratch. The key is treating AI as a collaborator, not a crutch.
I am sorry to hear that, and I hope your insurance covers it.
---
Seriously tho, "wysiwyg with natural-language edit commands" seems like the sort of thing that I'd expect to have a sharp cliff, like RAD tools are known for but perhaps even sharper.
To people commenting that no should do this ever, and people commenting that kids shouldn’t learn this way:
It doesn’t have to be the only way someone ever builds software.
The right technique matches the effort level to the needed level of polish.
And vibe coding can be a great way to learn, and a great way to explore. Build one to throw away, as they say.
Finally and most interesting of all. Vibe coding opens up a whole new region on the effort-to-polish spectrum. There’s bound to be some interesting problems that can be solved now.
I believe Fred Brooks clarified this to mean you shouldn’t hesitate to throw away your first attempt if it comes up short despite your best effort.
If an LLM came up with the first implementation, not only did you not do the hard work of understanding the problem and how to solve it but, worse, you could be anchored to the LLM’s implementation thinking about how to patch it up so it performs adequately. Personally I think you should have LLMs have a go after you’ve had a solid try yourself, so you can actually compare and see what you might have missed.
If you're writing CSS I suppose you can vibe code, but it won't work for anything more complicated. They get you close most of the time but you still have to work.
This is simply not true if you're working on more serious websites for clients who actually audit for accessibility or responsive design, nor if you want it to be maintainable by web devs that actually know what they're doing.
CSS definitely isn't as messy some C++ still out there in the wild. If you're doing it right you should be able to quickly write a minimal amount of code that does what you want even for fairly large websites. Involving AI for something so trivial would just get in the way. Bad CSS is usually due to the requirements specifying a terrible design, much like how bad requirements drive bad code in any other language.
I can highly recommend giving this a try, even if it goes against every instinct you might have as a programmer of any level of seniority.
It's not (yet?) my preferred way of programming, but the fact that it works at all was hugely surprising to me, and I got more than one genuinely useful little utility out of it already.
i vibe coded my entire website. at some point you gotta introduce smart patterns to create controlled chaos. in 6-12 months this will be able to tackle projects of significant complexity. the major breakthrough needed is "code intelligence", not just code mercinaries. someone will crack it, my guess would be anthropic first if they play their cards right. sonnet is still king of the hill
"Vibe" is just an euphemism for lazy here. And that's not 'coding' in any shape or form, it's code generation through an AI model, without even understanding it, very different thing.
It's like comparing cheap ramen to fine Italian cuisine.
> ...it's code generation through an AI model, without even understanding it...
Are you implying that Andrej Karpathy[0] doesn’t understand how the code generation from these models works? Or are you saying he isn’t capable of understanding the output?
As I read it, they're making a case that one does not always have to understand all levels, and that's literally the story of human progress in a nutshell.
People are still free to understand the joys of computer programming "by hand", if they are so inclined, just like some people still know how to build internal combustion engines. It might even be very fulfilling, lead to a great career as a car mechanic, engine designer etc. – but I think it's fair to also just want to be able to drive one and take a trip to somewhere amazing, and I don't think we need to morally gatekeep anything.
It's less about morals and more about stability and quality. The "middle class" today usually understands their craft on a fairly deep level regardless of "progress" experienced by higher levels of socioeconomic status. Talk to those people of status and ask them if they think it's sustainable.
Talk to any sufficiently experienced engineer and tell them they don't understand at "all levels".
The worry comes when all of that is devalued to the point that nothing matters beyond merely determining what needs to be done and the real gatekeeping is done by idiots who think they're smarter than those who actually do heads down work.
We're throwing away everything for these idiots who walk all over those who are scared of taking this situation into their own hands. Not everyone can be a hero, but damn do we need a few.
> Talk to any sufficiently experienced engineer and tell them they don't understand at "all levels".
I only need to look at myself for that. I'm pretty experienced in some areas, but the time that a single person can understand it all within a lifetime has long passed.
> The worry comes when all of that is devalued
Not everything will be devalued, but values will definitely change when it doesn't take a software engineer to write a simple CRUD application anymore.
The industrial revolution seems like a good comparison: There are still people manufacturing individual, highly customized items, whether for niche applications or for people that value the craftsmanship in and of itself. But most things that used to be made in workshops are now produced in factories, with orders of magnitudes fewer workers.
> We're throwing away everything for these idiots who walk all over those who are scared of taking this situation into their own hands.
Another way of looking at this is that a lot of people (not all) have much to gain by letting go of some (not all) low-level control and focusing on higher layers. And yes, letting to of habits and control can be pretty scary – speaking from lots of first-hand experience.
Understanding the code that is being generated, not how the model works. That's his whole argument, just speak English and vibe with the thing, don't worry about the code.
Stating the obvious: to understand the code you have to read it and interpret it.
Sticking with that analogy, it's like reprimanding somebody for cooking instant Mac and Cheese when they're hungry when there is a cooking class only a few minutes away, and implying that they must obviously not know or care about food at all.
This sounds like something that works until it doesn't, and then you have this massive codebase you're responsible for that doesn't work, and you don't understand why or know whether it can even be fixed.
I didn’t even put that much effort into defining the grammar, I just sort of let my fancy take flight. Which is a wild headspace to be in when writing a DSL in C with a web runtime with jq, Lua, GitHub OAuth and more all built in into the language itself.
It took some guidance of course and I’m well versed enough in C to have orchestrated the memory arenas and overall architecture but I sure has hell didn’t actually type more than 5% of the code.
Cursor Composer in agent mode with Claude Sonnet 3.5 has let me take on some very experimental endeavors.
I love this - the former director of AI at Tesla doing and saying exactly what many of us have been doing for months now, even down to using voice instead of typing. And it's always specifically Whisper Large v3, Sonnet 3.5, and Cursor in Compose Agent Mode that people mention. The second-best tools just aren't fun like that combo. It feels like doing art: it's taming a beast, phrasing things one way and then another, testing, discarding the changes, and phrasing them a new way. It's having a spoken dialogue with your eyes literally closed, like the Rick Ruben meme. Think of the perfect poem using all your CS intuition, accept all changes and test, then guide the LLM with what it misunderstood. Glance at the code only if it helps see where a verbal misunderstanding took place. You need to spend your time leveling up your clear thinking and expressing skills here, not your coding skills. Think of how to build things as small, functional steps - chunking it into tasks that the dataset trained it to do. If you don't like this, then don't use it; it's not for everyone. This is not a replacement for people who can decipher machine code and type out syntax from memory — keep doing what makes you special! But I find it very exciting. Hardly anything feels gatekept by obscure knowledge anymore. I replaced the Google Assistant hardware button action on WearOS 5 with my own voice assistant that emails me notes I speak into my watch. Have I ever used Android Studio? No. Did it matter? No. It just did it, and it worked, because I asked the right questions in the right way. We live in magical times for those who want to dive in with an open mind to a new and strange paradigm. 'Vibe' is a good name for it - like how musicians get into a flow state, like an enmeshing of man and machine.
reply