6 ms·
The problem with "vibe coding"
- linsomniac 1y ago>they empower people with minimal development experience to create their own programs. The author goes out of their way to play up the toy aspect of the LLMs when driven by the inexperienced. No mention is made of them being used by experienced developers, but I get the impression he feels they aren't useful to the experienced. I'm just playing with a small client/server tool (rsync but for block devices), and vibe coding allowed me to figure out some rough edges of my design document, and experiment with "what would it look like built with threads? As async code? As procedural?) I would never have done that before because of the sheer amount of time it would take, I'd have picked what I thought was best and then lived with the sunk cost falacy until I had no other choice. It did a pretty good job of catching reasonable exceptions in the communication code which I probably would have just let throw a traceback until I got a bug report. It did a great job of adding logging and debugging options. And I had it take 4 attempts at making a "fancy" --progress display and picked the one I liked the best. LLMs give a level of exploration to software development that we haven't seen since the good old days when HP set up several groups to each build their next generation workstation environment, and then picked the best one. IMHO, the experienced software developers stand at a unique position to take advantage of these LLMs that far outstrip what an inexperienced developer can do.
- tjpnz 1y agoHow does the inexperienced developer become experienced under said circumstances?
- alchemist1e9 1y agoI agree they may not and that’s very interesting. As an experienced developer myself I’m starting to think these tools are likely going to increase our market value not decrease it.
- kemayo 1y agoIt's not implausible that we'll wind up with something like the extremely long-lasting market for COBOL developers. A niche skill that's absolutely essential in a few places, and which can command high salaries as a result... for a few people. Only so many huge legacy banking systems, after all. The problem, as with COBOL, would be the loss of the existing pipeline that created new competent high-level developers.
- Maxious 1y agoIBM just launched a new mainframe with AI accelerators https://www.ibm.com/products/watsonx-code-assistant-z https://www.ibm.com/products/watsonx-code-assistant-z in part to help rewrite production COBOL into Java https://www.ibm.com/products/watsonx-code-assistant-z https://www.ibm.com/products/watsonx-code-assistant-z
- animuchan 1y agoSounds fantastic! And it might also help with ageism, when "learned programming long before LLMs" is recognized as a differentiator. I, for one, welcome this change very much, disastrous as it sounds.
- linsomniac 1y ago"The value of 90% of my skills just dropped to $0. The leverage for the remaining 10% went up 1000x." -- Kent Beck
- kmoser 1y agoYou can examine the code at any time, ask for an explanation, and even make changes yourself. In other words, you get out of it exactly what you put into it. If you choose to let the AI do all the coding and never dig into the actual code, you'll learn more about how to communicate with an LLM than you will about how to write code.
- vaylian 1y ago> ask for an explanation That is risky. The AI might just hallucinate an explanation.
- Zambyte 1y agoSo can any human-based sources. A healthy learning experience with AI takes discipline, just as it does with humans.
- skydhash 1y agoThe amount of errata in technical books is very small compare to the length of the book. I believe it ranges from none to a page or two.
- Zambyte 1y agoThat sounds like a similar failure rate for using newer models in technical contexts. Especially for popular technologies where there are enough resources such that someone other than the original creators could reasonably write a book about it.
- kmoser 1y agoI think that's an oversimplified metric when comparing the ability of an AI to analyze and describe code. Imaging you're reading a book on a challenging new topic. Even if the book is 100% right, there will be many passages you don't understand, and may even misinterpret. A book won't correct you, offer alternate explanations, or break down concepts any further than what was already written. An LLM, for all its flaws, can do these things exceedingly well (provided it has good source material, of course). This gives you the ability to get answers to your questions and correct your mistakes. I'd argue that these benefits far outweigh the errors an LLM makes in breaking down and explaining material, and make an LLM better than a book in many (not all) cases.
- linsomniac 1y agoThat is a question that is very near and dear to my heart right now because my son is 15 and very interested in programming. I don't have any good answers yet, but you definitely need to know so many of the core concepts to be able to steer the LLM around pitfalls.
- SteveDR 1y ago> vibe coding allowed me to figure out some rough edges of my design document, and experiment with "what would it look like built with threads? As async code? As procedural?” This doesn’t fall under my understanding of the phrase “vibe coding”. In the tweet from Karpathy which many point to for coining the phrase, he says that when vibe coding you essentially “forget the code exists”. I think it’s distinct from regular ol LLM-assisted development
- ghurtado 1y agoWe used to call that "the zone", and it's not exclusive to coding.
- barotalomey 1y agohttps://en.wikipedia.org/wiki/Flow_(psychology) https://en.wikipedia.org/wiki/Flow_(psychology)
- int_19h 1y agoNot in that sense. When you're coding and "in the zone", the code doesn't cease to exist - it's more like it becomes the extension of you.
- linsomniac 1y agoI surely did a hybrid approach, but for a large swath of it I was pretty purely "vibe coding", where I wasn't looking at the produced code at all. I initially had Gemini 2.5 build some code and then did a code review of it. I tweaked my design document and then had Claude and ChatGPT take a stab at it and at this point I wasn't looking at the code at all. These implementations had some deadlock or early termination problems so I asked for some different async and threaded implementations, but ultimately they went off into the weeds in ways I couldn't really reason about, so I went back to a straight select/procedural implementation and had it start tracking outstanding blocks, which got something working reliably. Then I asked for fancy progress displays, tried several attempts at that. Then at this point I started cleaning up the code some, had it add type annotations, etc... Big swath of pure or nearly pure vibe coding in the middle there.
- dang_und_tom 1y ago[flagged]
- pfraze 1y agoHonestly just good advice for engineers in general - understand the difference between programs and products
- salarhaji 1y agoYeah I agree. That was my main takeaway... just because you have a running program doesn't mean you got a product... the vibe-coding thing is just the flashy headline
- SideburnsOfDoom 1y agoThat was my takeaway: The missing bit is "software engineering", which is not "coding".
- commandersaki 1y agoOne of the genuinely positive things about tools like Copilot and ChatGPT is that they empower people with minimal development experience to create their own programs. Little programs that do useful things - and that’s awesome. More power to the users. I've changed my outlook on vibe coding after seeing the results of this wholesome vibe coding: https://www.youtube.com/watch?v=4pJUXocn7aE https://www.youtube.com/watch?v=4pJUXocn7aE . This guy didn't just make a small program, he made a product that is attuned to some very stringent requirements. If you gave this project to experienced software developers it would be heavy on process and light on impact, take forever to make, and stupid expensive.
- okayishdefaults 1y agoYeah but if you want to remove those qualities from how a professional swe works, simply have them do it for free.
- t-writescode 1y agoThis is literally the sort of empowerment that can be truly awesome. Thank you so much for sharing!
- noman-land 1y agoI love this so much. It's hacky, janky, and absolutely phenomenal and life changing. This is like perfectly in the spirit of the hacker ethos. This dude scraped together pieces around him and made a useful product that solves the problems he wants to solve, the way he wants to solve them. The code is probably garbage. You can tell the UI is weird and jumpy. He's using timed delays to manipulate the browser with keyboard keys. The whole thing would be absolutely shredded here. But it's beautiful. It's crafted for function over form with duct tape and bubble gum but it's the difference between his brother being locked helplessly alone in his body, or being able to express himself and have some level of autonomy. It's just awesome. LLMs rule for this kind of stuff. Solve your problems and move on. The code is not so precious. You'll learn many things along the way and will be able to iterate quickly with a tireless and semi competent but world knowledgeable assistant.
- 1y ago
- nonethewiser 1y agoIm so confused on what vibe coding is. Is it: - just pressing tab and letting copilot code whatever? - asking an llm to do everything that it can and falling back on your own brain as needed or when its easier. I guess probably more like the latter. I was just surprised to hear there was a special term for it. I thought everyone was doing that.
- sieabahlpark 1y ago[dead]
- charcircuit 1y agoThe pure definition is to have AI do everything for you without caring about what the actual code is.
- mvdtnz 1y agoYeah this is how I interpret it. Type text into the chatbot, copy and paste the outputted code. If it fails to compile, paste the error message and get the resulting code. Similar if it fails at runtime. Supply the LLM with additional code files where necessary but don't really look at the code, just copy and paste in, copy and paste out.
- Nav_Panel 1y agoCopy paste? Use something like desktop commander and just let it edit the files for you directly. It'll even run commands to test it out. Or go further and use Cline/RooCode and if you're building a webapp it'll load your page in a small browser, screenshot the contents, and send that to the model. The copy-paste stuff is beginner mode.
- nonethewiser 1y agoHow else are people using LLMs to code? Other than this? Its so fast to do these things. Seems dumb not to use an LLM to interpret an error message if you don’t immediately know the problem. And if it doesn’t work you can alway abort and do it yourself. The whole code gen and debugging process might take 45 seconds. Sure its dumb if you’re writing some short simple function. And you need to be in the loop and understand all the changes you are making in a professional setting. But that just sounds like the basic workflow of coding with an LLM.
- alganet 1y agoSometimes I want to cook a home meal. If I wanted to open a large world class fast food chain, I wouldn't be cooking home meals then. That would be silly. Copilot can help me cook the equivalent of a McDonalds special in terms of software. It's good, I think McDonalds is delicious. But it cannot help me cook a home meal software. It will insist that my home made fries must go in a little red box, and my fish sandwich needs only half a slice of cheese. Deeply into that metaphor, maybe someone who has only worked for fast food chains might forget that a lot of good industrial dishes are variations of what previously were home cooked meals. I am glad that copilot can help young cooks to become fast food workers. That really looks like something. Well, I take pleasure in cooking home meal software. Can you make a copilot that helps with that? You know what, nevermind. I don't need a copilot to cook home meals. I have a bunch of really good old books and I trust my taste. It's not like some big company is going to be interested in some random amateur dish, is it? It was definitely not cooked for them.
- barotalomey 1y ago[flagged]
- llbbdd 1y agoObtuse and missing the point on purpose.
- barotalomey 1y agoObtuse maybe, but I'm not missing the point. Their point is nonsensical, given that LLM generated code isn't "as good as fast food compared to home made meals" or even comparable to "food". Go ahead and explain why I'm missing the point.
- selcuka 1y agoThe point is, for most projects there is nothing wrong with writing McDonald's level code. It's not as healthy or tasty as a homemade meal, but it will perform its main function (i.e. prevent you from starving).
- rvz 1y ago‘Vibe coding’ isn’t software engineering. It throws away decades of software engineering principles in favour of unchecked AI output by clicking “accept all” on the output. You would certainly NOT use ‘vibe coded’ slopware that powers key control systems in critical infrastructure such as energy, banking, hospitals and communications systems. The ones pushing “vibe coding” are the same ones who are all invested in the AI companies that power it (and will never disclose that). An incident involving using ‘vibe coded’ slopware is just waiting to happen.
- mc3301 1y agoIt's like building a decorative bridge over a decorative pond in your backyard out of scrap wood versus building an actual bridge for public traffic.
- aglione 1y agofun fact: nobody would never accept vibe coding software level for a 200$/month vibe coding software tools
- NitpickLawyer 1y ago‘OUTSOURCING’ isn’t software engineering. It throws away decades of software engineering principles in favour of CHEAP output by clicking “I AGREE” on a contract. You would certainly NOT use ‘OUTSOURCED’ slopware that powers key control systems in critical infrastructure such as energy, banking, hospitals and communications systems. An incident involving using ‘OUTSOURCED’ slopware is just waiting to happen. ... oh, wait...
- danparsonson 1y agoI mean that's not a great counterexample because outsourcing is famously difficult to get right, and from my own experience often results in exactly the kind of terrible code quality GP is talking about.
- NitpickLawyer 1y agoMy point was that a blanket generalisation is bad because it's a blanket generalisation, the details are unimportant. Yes, outsourcing is famously difficult to get right, and yet we've been doing it in every industry for decades now. And the famous examples become famous when something fails (boeing et. all) but there are also success stories out there. The trick, as always, is in the implementation. My other point was that every "new thing" gets the same treatment. It doesn't work. Oh, it works but on toy problems. Well, it works on some complicated problems, but it's expensive. Ok, it works on a variety of problems, it's cheap, but it's unmaintainable. And so on, and so forth.
- alexashka 1y ago'The problem' is this species prefers doing instead of thinking. 'Vibe coding' is merely an instance.
- danparsonson 1y agoIf you haven't already read it, you'd probably enjoy "How big things get done" by Brent Flyvbjerg and Dan Gardner - what you said is the central thesis of the book.
- alexashka 1y agoReading books is an instance of doing instead of thinking in many cases :)
- zachthewf 1y agoThe argument is that vibe coding is great for little personal programs but bad for full-blown products. I don't think you can ship a fully baked product made exclusively with AI coding yet. But it's *really* useful for investigative product development - e.g. when you have a few different ideas for how something might work but aren't quite sure what's best. I used to regret that I never mastered Figma or other mockup tools - now I never will have to.
- asadotzler 1y agoThe real takeaway here is that programs you whip up for your own use, by any means, are not the same things as maintainable products you can deliver to customers. Vibe coding, or VB tricks and hacks 25 years ago, or whatever, sure, do it if that works for you, but that's not a product you can maintain for a customer base. It's a program, not a product.
- cess11 1y agoI think "maintainable" is carrying a lot of weight in there. A lot of profitable or otherwise successful software has been built by people who reasonably couldn't be called software engineers or computer scientists or whatever academic title. With Excel, Access, VB, Delphi, Wordpress. I'm sure there's an astrologer somewhere that made OK money from a hack in Delphi or VB for divining the stars on a computer. It shouldn't be called "vibe" coding, it seems more like glue coding, which some people have been doing and sometimes made careers out of for a very long time. Wordpress was for a long time the big thing in this area, it allowed (probably) millions of people to call themselves web designers and web developers without actually becoming competent in software design. Many corporations selling software have developers that aren't much better than that. People that might do 'SELECT * FROM table WHERE foreign_id = ?' to check whether there exists any such row, or create full copies of data to add versioning to some product instead of keeping it as metadata, or generate and store hundreds or thousands of gigabytes of dumb data representing business processes (like bookings and such) for the coming century instead of inferring it from rules on the fly. The corporations where I've seen this are generally considered fine and good software companies by customers and competitors alike. A new RAD, a new Wordpress, a new MICROS~1 Access or a new LotusNotes isn't particularly revolutionary. I suspect the 'hype' is more about getting people in IT to accept the technology as such and not revolt against the broader applications against other, non-technical, people; for control, disciplining, harassment, surveillance, war or whatever nefarious, tyrannical purpose.
- kikimora 1y agoThe difference with VB or any RAD is AI generates so much code that a human won’t be able to maintain it manually. Like, 3 months into the vibe-coded project you discover there is a concurrency issue. But it is now all over the place in hundreds variations. How do you even fix it?
- makeitdouble 1y ago> To me, programs are “works on my machine” code. My main takeaway from vibe-coding is that nobody cared enough to fill that niche and expectation. And it was really frustrating, yet we're getting there through convolutated, inefficient and borderline barbaric means. People are still lamenting after HyperCard. Automation on windows or macos didn't go anywhere. Shortcuts were a better step into that direction but I feel it got stuck in the middle as Apple wasn't going to push it further. Android had more freedom yet you won't see a "normal" user do automation either. If we're going to point the middle finger at vibe-coding, I wish we had something to point to as a better tool for the general population to quickly make stuff they want/need. (Doing it as a professional dev is to me another debate, still with nuance in it IMHO. I'd also love better prototyping tools to be honest.)
- TiredOfLife 1y agoAlso Visual Basic and Delphi.
- skydhash 1y agoPython is not exactly a hard language to learn. But the truth is that people generally don’t like to devote time to what they deem unimportant even if the end result would be useful. I’ve seen smart people go though dense mathematics and physics books, but refuses to take an introductory course in programming.
- makeitdouble 1y agoPython is comparatively easy, but you wouldn't say it's easier than the building mechanics in Zelda TOTK for instance. I think what the target demographics want is that level of modularity and block building.
- 0xCE0 1y agoThe real problem with "vibe coding" (or any coding, or with any product what so ever) is that the end user probably is not a programmer, and therefore cannot have professional judgement on the quality of the implementation. The only thing typical end user care is the perceived behavior, not the implementation details. As it is easier and cheaper to do anything, the result is low-quality products. This of course serves well for the real professionals, who can now sell premium quality products at premium pricing for those who know and want the quality.
- Ekaros 1y agoI am happy that there will be work in security for good while. They might first pass run LLMs on that too. But it will miss things and that is where I can come in...
- int_19h 1y agoIt depends. Market has demonstrated time and again that premium quality is a rather niche product. Is the niche large enough for all the existing "real professionals" to fit into it?
- kikimora 1y agoI doubt that vibe coded software is maintainable. Time will tell, so far no indication it is.
- gorgoiler 1y agoIt’s implied that programs are personal but product code goes through peer review, checking the premise of the change as well as the implementation. When someone reviews vibe coded patches and gives feedback, what should the reviewer expect the author to do? Pass the feedback onto their agent and upload the result? That feels silly. How has code review changed in our brave, vibey new world? Are we just reviewing ideas now, and leaving the code up to the model? Is our software now just an accumulation of deterministic prompts that can be replayed to get the same result?
- edg5000 1y agoWith the Altair you had switches to input bits of CPU instructions. Then punchcards. Then Telex. Then assembly in a terminal. Then C, Pascal and Smalltalk. Then Java, C++, Python, PHP. Then the mountains of libraries and frameworks, realtime indexers, linters, autocomplete, suggestions. The next step seems that we will write programs in prompts. Maybe we will get a language that is more structured than the current natural language prompts and of much higher order than than our current high level programming constructs and libraries.
- skydhash 1y agoYou can’t eliminate formalism in programming. You can only abstract it away by creating a metaprogramming layer for the current one. And prompt isn’t that. Prompting is a blind shot hoping to hit something good.
- edg5000 1y agoIndeed, that is why we may end up with some sort of standardized and structured way to write functional descriptions of software that we can train AIs on. How close to natural language it will be I'm not sure. Arguably, since the birth of computing we see programming languages inching ever closer to natural language, albeit still far removed. Perhaps we will end up with something indeed really formal and strict, but much more high-level. AIs could than be trained on the full language; maybe we can then solve the "confident yet wrong" problem with current agentic programming.
- revskill 1y agoTo effectively vibe code, u must setup a really clean foundation first, so that llm knows their boundary. Following best practices is a must.
- gscott 1y agohttps://www.pymnts.com/artificial-intelligence-2/2025/openai-developing-ai-agent-to-replace-software-engineers-cfo-says/ https://www.pymnts.com/artificial-intelligence-2/2025/openai...
- __MatrixMan__ 1y agoThis is about the problem with vibe coding your way to a product. But if the vibes are strong enough, maybe we don't need products at all? They do tend to complicate things, with all of their moats and such. I never wanted a product that did the thing, I really just wanted to do the thing. "Works on my machine" might be good enough if you're unlikely to want to repeat yourself on a different machine.
- lcnPylGDnU4H9OF 1y ago> I never wanted a product that did the thing, I really just wanted to do the thing. Would you vibe code your daily driver car's ECU or a high-frequency trading application to use for your 401k? If you were to do these things (more power to you), I rather suspect you'd still do a whole lot of research and critical thinking beforehand, which sort of obviates the "vibes".
- __MatrixMan__ 1y agoIt is hard to imagine trusting an AI that much. But plenty of things happening today would've been hard to imagine by the people who came before. So yeah, let's make that assumption. At that point, I don't think we'd be using the AI to code something and then switch to a mode where we're now using the recently-coded thing. We'd just ask the the car to go, and it would happen. Then we'd suggest a strategy for making trades, and that would happen. If the AI decided to write some code and fork a subprocess along the way... that would be an detail that we'd be unaware of.
- wolvesechoes 1y agoI have a fairly successful heuristic - the more words about "empowerment" or "democratization" are being spilled around, less power and democracy common people have. There is a reason corporate snakes love these words so much. But hey, enjoy your vibe-coded app and believe that this tech is hyped because of perspectives on betterment of human society and individual emancipation, not because it will allow our technocratic overlords tighten the leash.
- anal_reactor 1y agoI love it how AI-sceptics just keep moving the goalposts.
- pjs_ 1y agoRight now there are thousands of apps getting built with AI that are going to work surprisingly well, will get embedded into all sorts of fundamental processes — and will start to perform unacceptably badly in two or three years. God knows what we do with this information but it seems clear we are setting up for a tsunami of horrible performance regressions
- blablabla123 1y agoActually even in the years before AI code generation started, I noticed an increase in code bases that seem very well architected and engineered. But once you start using the code for a week you notice it's full of bugs and the consistent architecture is just make believe. Surely this problem is getting way worse with generated code that is optimized to read like it's very well engineered
- OutOfHere 1y agoI wish there were no "software products" at all. They usually just come in the way. I favor open source, and not imposing unnecessary constraints on users. Every piece of software should be swappable, and tying it to a vendor makes it less so.
- bdangubic 1y agosimilar thought if you were running a sport franchise as a GM and saying imma make a team where every player is swappable except of course swapping lebron might not be all that feasible :)
- commandersaki 1y agoThis was precisely the dilemma you'd have playing Speedball 2.
- amai 1y agoThere is a problem with vibe coding? You don't say!
- jumploops 1y agoThis article starts to touch on an important distinction between software and products, but seems to miss the larger picture. With the cost of developing software dropping to near zero, there are a whole class of product features that may not be relevant for most users. > You haven’t considered encoding, internationalization, concurrency, authentication, telemetry, billing, branding, mobile devices, deployment. Software, up until now, was only really viable if you could get millions (or billions) of users. Development costs are high, and as a product developer you're forced to make software that covers as many edge cases as possible, so that it can meet the needs of the most people. I like to think of this type of software as "average" -- average in the sense that it's tailored not to one specific user or group of users, but necessarily accommodating a larger more amalgamous "ideal" user. We've all seen software we love get worse over time, as it tries to expand it's scope to more users. Salesforce may be the quintessential example of this, with each org only using a small fraction of it's total capabilities. Vibe coding thus enables users to create programs (rather than products) that do exactly what they want, how they want, when they want. Users are no longer forced into the confines of the average user, and can instead tailor software directly to their needs. Is that software a product? Maybe one day. For now, it's a solution.
- Vanit 1y agoI agree with the article, but that's not how the vibe coders see themselves. From their perspective they can't see the gap between programming and product, and in my experience are pretty hostile to feedback from real software engineers.