Vibe Coding
45 comments
·February 3, 2025ryandrake
Retr0id
Sometimes you just need a place to sit
kranner
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.
vunderba
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.
atomicnature
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"
lxgr
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.
_hao
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".
SecretDreams
> 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.
Have you been on the internet lately?
romanovcode
Money.
macNchz
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.
AdieuToLogic
I sometimes wonder what someone on about their fifth edible would be like when given a deliverable.
Now I know.
samantha-wiki
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.
lxgr
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.
Retr0id
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.
klipt
I think at this point it's no longer coding, it's more "AI coder management"
null
null
tbrownaw
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.
cadamsdotcom
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.
kranner
> Build one to throw away, as they say.
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.
esafak
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.
williamcotton
I’ve had a lot of success with the method:
https://github.com/williamcotton/search-input-query
Search box DSL with React component with syntax highlighting, error syntax reporting, etc. Converts AST to postgres ilike, tsvector or pg_search.
https://github.com/williamcotton/guish
A bi-directional GUI editor for constructing Unix pipelines with bash CLI parsed to graphical modules.
All of these were made basically with the same tools and methods that Karpathy is describing as Vibe Coding.
These are not just simple little projects. This approach is not just limited to making a few CSS changes.
sublinear
I don't get how this sentiment still persists.
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.
lxgr
I've definitely implemented small utilities entirely in Claude (as webapps/"artifacts").
lxgr
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.
lytedev
I'm pretty clueless with regards to modern LLM coding tools. What tools make this possible; talking to the computer to change code and whatnot?
alienreborn
Cursor or Vscode+Github Copilot Chat.
talles
"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.
ericrallen
> ...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?
[0]: https://karpathy.ai/
sublinear
I don't think anyone is implying the author can't understand. The problem is with insisting that one doesn't have to.
lxgr
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.
talles
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.
lxgr
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.
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.