26 votes

The dangers of vibe coding

32 comments

  1. DeaconBlue
    Link
    Rule 1 of vibe coding is to never use your own API keys. The first thing that you should do for any project is to go find another project written by someone vibe coding and use the API keys that...

    Rule 1 of vibe coding is to never use your own API keys. The first thing that you should do for any project is to go find another project written by someone vibe coding and use the API keys that they let the AI hard code and push to github.

    39 votes
  2. [15]
    creesch
    Link
    I have messed around with "vibe" coding projects out of curiosity: The initial code is often fine, as it is simple. But even here I have seen plenty of instances of subtle bugs already being...

    I have messed around with "vibe" coding projects out of curiosity:

    1. The initial code is often fine, as it is simple. But even here I have seen plenty of instances of subtle bugs already being introduced. The sort of thing you will only catch over time or if you already know how to code.
    2. The bigger the project becomes the messier, unless you specifically start asking to refactor code to bring back structure, etc. Something you specifically need to know a bit about and explicitly ask about.
    3. Why would you even bother? Because LLMs otherwise start confusing themselves. The context window of the models I did play around with is not big enough to keep sight of one single file of code. Vendors often claim a certain context window, but in my experience most models already start loosing track of what they are doing way before you hit the official window.
    4. As your project grows at some point it will outgrow the context window anyway. You then need to switch to asking about specific blocks of code. Any quick progress you made before will slow down for sure at this point. In fact, for me, it is the point where I let go of the vibes and just take back the wheel. I might still use an LLM, but more like I am already using them

    Realizing this also made me realize why the surrounding hype is so big. Many people get introduced based on demos and proof of concepts that never really exposes them to issues down the line around my third point. LLMs are incredibly good at flashy demos and proof of concepts and can bullshit through a lot immediately after.

    More importantly, their context windows and context awareness is so limited that for the time being I really don't see them out competing a lot of professionals in actual work. Of course, large swaths of management across the globe doesn't see it the same way because their reality is the one of demos and proof of concepts.

    28 votes
    1. [12]
      c-w-s
      Link Parent
      My usual retort to AI coding is this: writing code was never the hard part to begin with.

      My usual retort to AI coding is this: writing code was never the hard part to begin with.

      13 votes
      1. [5]
        creesch
        Link Parent
        Going to need more context to make sense of that one tbh.

        Going to need more context to make sense of that one tbh.

        4 votes
        1. [4]
          Diff
          Link Parent
          Writing code isn't too difficult, at least once you learn the formats the computer expects and have a working mental model of what it's doing with your code. The hard part of writing code is...

          Writing code isn't too difficult, at least once you learn the formats the computer expects and have a working mental model of what it's doing with your code.

          The hard part of writing code is knowing how to architect it. Knowing what paths are worth pursuing and which will end up writing you into a corner filled with spaghetti.

          13 votes
          1. [3]
            creesch
            Link Parent
            Ah yeah, agree with that. Just wasn't sure you meant it like that as I could also read it meaning the opposite. :)

            Ah yeah, agree with that. Just wasn't sure you meant it like that as I could also read it meaning the opposite. :)

            1 vote
            1. [2]
              Diff
              Link Parent
              Ah do keep in mind I am just some rando jumping in on the middle of a conversation, but it's a sentiment I have heard before so hopefully not stuffing words in c-w-s's mouth.

              Ah do keep in mind I am just some rando jumping in on the middle of a conversation, but it's a sentiment I have heard before so hopefully not stuffing words in c-w-s's mouth.

              1 vote
              1. c-w-s
                Link Parent
                Nope. You're 100% on the money.

                Nope. You're 100% on the money.

                2 votes
      2. [6]
        stu2b50
        Link Parent
        Isn’t that an argument for AI coding?

        Isn’t that an argument for AI coding?

        1 vote
        1. [4]
          infpossibilityspace
          Link Parent
          Only if you could tell it very specifically what kind of architecture you want, what to do in certain scenarios and which areas to leave open-ended so extending or debugging functionality later is...

          Only if you could tell it very specifically what kind of architecture you want, what to do in certain scenarios and which areas to leave open-ended so extending or debugging functionality later is simple... At which point what you've done is written the code in all but name with the added complexity that natural language is bad for specificity.

          3 votes
          1. [3]
            tauon
            Link Parent
            Adding to that (I agree): Writing code is arguably the fun part, and architecting is the hard part, meaning for a beginner to get “into” programming for more than just the resulting output, using...

            Adding to that (I agree):

            Writing code is arguably the fun part, and architecting is the hard part, meaning for a beginner to get “into” programming for more than just the resulting output, using this is just… not suitable. Sure, you’ll get something up and running more quickly/at all, and if that motivates someone to learn more – great! But likely, what’ll happen is they both won’t learn as much due to not going onto those different paths and have a worse-functioning project once it turns a bit more complex. So really, you might learn what code and syntax look like, but the important part – designing a system – is overlooked.

            This includes the removal of getting to know the surrounding tools and fundamentals, see that famous post from someone who had months of AI-written work and lost it all in one go due to never once having done a git commit.

            6 votes
            1. [2]
              EpicAglet
              Link Parent
              Odd. For me the architecture is both the hard and the fun part. Writing the actual code stopped being interesting at some point for me

              Odd. For me the architecture is both the hard and the fun part. Writing the actual code stopped being interesting at some point for me

              3 votes
              1. tauon
                Link Parent
                Fair take. I am at, uh, sub-junior level so it’s very valid if your perspective differs here… Should’ve made it clearer that this portion was only from a personal experience, not generalizing like...

                Fair take. I am at, uh, sub-junior level so it’s very valid if your perspective differs here… Should’ve made it clearer that this portion was only from a personal experience, not generalizing like the rest.

        2. c-w-s
          Link Parent
          Nope. If what AI gives me is bullshit code, I get nothing useful. I can write code all day. If AI somehow becomes a software engineer capable of reasoning about tradeoffs in architecture, then we...

          Nope. If what AI gives me is bullshit code, I get nothing useful. I can write code all day. If AI somehow becomes a software engineer capable of reasoning about tradeoffs in architecture, then we can talk. It's not doing that for the time being. (And that's the GP's point)

          2 votes
    2. ButteredToast
      (edited )
      Link Parent
      Yeah, LLMs can be ok for conjuring a barebones starting point or acting as a hyper intelligent rubber duck that can spit out examples, but quality starts declining fast. In just a few questions...

      Yeah, LLMs can be ok for conjuring a barebones starting point or acting as a hyper intelligent rubber duck that can spit out examples, but quality starts declining fast. In just a few questions they start to trip over themselves, make obvious mistakes, and hallucinate.

      I can only see myself ever using them for languages and frameworks I’m well-acquainted with so I can spot the inevitable bugs easily, and even then I don’t feel comfortable entrusting them with anything more than getting me started.

      3 votes
    3. post_below
      Link Parent
      I don't have anything to add, just wanted to say that this is a fantastic distillation of the state of LLM coding.

      I don't have anything to add, just wanted to say that this is a fantastic distillation of the state of LLM coding.

      1 vote
  3. [2]
    dotdev
    Link
    My org is infatuated with vibe coding and thinks it will be the solution to all of our problems. At what point do I start plowing fields and woodworking?

    My org is infatuated with vibe coding and thinks it will be the solution to all of our problems. At what point do I start plowing fields and woodworking?

    11 votes
    1. creesch
      Link Parent
      In between the period that they implement vibe coding and the period they rehire capable developers to clean up the mess I recon.

      In between the period that they implement vibe coding and the period they rehire capable developers to clean up the mess I recon.

      19 votes
  4. [3]
    vord
    Link
    Interview with Vibe Coder in 2025
    9 votes
    1. Mendanbar
      Link Parent
      Every time he said "Fix it now, or you go to jail" I lost my shit. Thank you for the laugh.

      Every time he said "Fix it now, or you go to jail" I lost my shit. Thank you for the laugh.

      5 votes
    2. cfabbro
      (edited )
      Link Parent
      Hilarious but also reasonably interesting follow up video: Vibe Interview with King of AI Coding (Replit CEO - $1.2bn) Kudos to the Replit CEO. He clearly knew what he was in for, and had a decent...

      Hilarious but also reasonably interesting follow up video:
      Vibe Interview with King of AI Coding (Replit CEO - $1.2bn)

      Kudos to the Replit CEO. He clearly knew what he was in for, and had a decent sense of humor about it.

      4 votes
  5. [2]
    Weldawadyathink
    Link
    Accidental Tech Podcast included a segment on vibe coding on the most recent show. It was a member only segment, so you need to have an $8/month membership to listen. I’ll try and cover what I...

    Accidental Tech Podcast included a segment on vibe coding on the most recent show. It was a member only segment, so you need to have an $8/month membership to listen. I’ll try and cover what I remember of their discussion.

    This isn’t a new thing. Fourth generation programming languages (might have been third) were all about allowing business people to write programs without needing to know how to code. That clearly didn’t pan out. Intellisense was touted as allowing non-coders to be able to program.

    Throughout computer science history, there have been many advancements that improve the productivity of programmers. Every single one has paradoxically increased the demand for programmers, not decreased it.

    With vibe coding, you have to define a strict set of expected outputs given certain inputs. As you test, you will find issues and need to redefine the behavior to be correct. This is programming. The unique part of vibe coding is you provide these definitions to an LLM instead of programming them yourself. You are still a programmer, you just don’t write the code yourself.

    9 votes
    1. TonesTones
      Link Parent
      The Jevons Paradox, which I learned about somewhere else on Tildes, is possibly relevant here.

      Throughout computer science history, there have been many advancements that improve the productivity of programmers. Every single one has paradoxically increased the demand for programmers, not decreased it.

      The Jevons Paradox, which I learned about somewhere else on Tildes, is possibly relevant here.

      1 vote
  6. [2]
    chopin
    Link
    Even for pet projects, I guess it makes sense to first set hard budget limits and circuit breakers for your third party services of choice so your vibe coding wouldn't blow a hole in your wallet....

    Even for pet projects, I guess it makes sense to first set hard budget limits and circuit breakers for your third party services of choice so your vibe coding wouldn't blow a hole in your wallet.

    On another note, vibe coding is making me super stupid. I started coding after LLMs and use them heavily. Sometimes, I have sessions where:

    • I bounce ideas off of an LLM on how to implement some feature
    • I let it create a POC
    • I improve on it via prompts
    • A bug arises
    • I'm out of my knowledge zone at this point and prompt the LLM to fix it, thinking the fix is a prompt or two away
    • I get to a point where I've been prompting for a few hours to fix an issue that I would have fixed quicker if I just took the time to learn the underlying tech and concepts and debug it myself

    When I'm not pressed for time, tho, debugging stuff without any assistance is fun and cathartic :)

    8 votes
    1. [2]
      Comment deleted by author
      Link Parent
      1. Reapy
        Link Parent
        I honestly think that is more a problem with java. I have been working in more python where I can over the last few years after having done java primarily for a long while. There are just so many...

        I honestly think that is more a problem with java. I have been working in more python where I can over the last few years after having done java primarily for a long while. There are just so many succinct ways to say and do things in python it's quite amazing for many jobs. When you go back to java it feels so cumbersome to write some of the things out and it's just so much boilerplate. In that setting I think is where AI is really good, the road traveled is well known and easily spotted by what you have.

        There is no bout that future coding will heavily involve AI, though it'll have to get way better at it than what it can do. I hope that future coders will take the time to understand every line of code they put down in their programs though, even if the AI is coming up with it. It's the same care one should take when getting stack overflow code or forking off open source or whatever else you do, I feel like it's the programmer's responsibility to know what their code is doing above whatever method you use to put it in there. But that also might be wishful thinking, and I'm sure we'll all be wading through AI slop for a long while now.

        6 votes
  7. [3]
    Markpelly
    Link
    Is the idea of vibe coding to essentially just use AI to write code only with AI, and assuming it will just work? Is this like a social idea? A common workplace strategy? This sounds entirely...

    Is the idea of vibe coding to essentially just use AI to write code only with AI, and assuming it will just work? Is this like a social idea? A common workplace strategy? This sounds entirely terrible. I use AI a lot to figure out small challenges in a coding project but it's all just pieces. I would never rely only on AI in its current state. AI is my assistant.

    6 votes
    1. Mendanbar
      Link Parent
      The idea that this might be used in practice to avoid needing to dig in and learn to code fills me with dread for the future. I'm glad I'm not alone in my worries.

      The idea that this might be used in practice to avoid needing to dig in and learn to code fills me with dread for the future. I'm glad I'm not alone in my worries.

      3 votes
    2. sparksbet
      Link Parent
      I regret to say I have seen at least one job listing mention embracing "vibe coding" in its description. I did not apply.

      I regret to say I have seen at least one job listing mention embracing "vibe coding" in its description.

      I did not apply.

      3 votes
  8. Turtle42
    Link
    I’m a janitor (actually a bachelors degree holding photographer turned storage admin who is currently down on his luck but also maybe just shitty at jobs and life) who’s successfully vibe coded...

    I’m a janitor (actually a bachelors degree holding photographer turned storage admin who is currently down on his luck but also maybe just shitty at jobs and life) who’s successfully vibe coded some projects and even I know you need to watch your API calls. Especially when it’s set to auto replenish from your credit card! How is this Claude’s fault? I’d expect API calls to be one of the few things an actual developer would look over to make sure a AI wasn’t going to cause a scenario like this. I’m not a real developer and I watch my keys like a hawk.

    I don’t think I could ever learn to program for real from scratch, but being able to talk in plain language to Claude and create working software to solve some personal need or scratch an itch and then tinker with it to figure out what it’s doing and how to improve it is exhilarating and I’ve learned more than I ever would have from a book or on my own and at little cost.

    I even used the new ‘Claude Code’ developer API to fix some JavaScript on a React site that was causing crazy CPU spikes and it fixed it instantly. I would have thought that a developer who knew what they were doing could do things 50x faster and better but maybe not. It’s a tool that’s very good at some things, but it also has limitations just like any other tool.

    5 votes
  9. BroiledBraniac
    Link
    I think as long as you use a tech stack you are comfortable in, set up a base project yourself before you 'vibe,' use git yourself to manage Claude's changes in case you need to roll back...

    I think as long as you use a tech stack you are comfortable in, set up a base project yourself before you 'vibe,' use git yourself to manage Claude's changes in case you need to roll back 'hallucinations,' and obviously don't give it access to sensitive data like api keys, then it generally is a good time and can increase productivity quite a bit. I have a family to take care of and it's provided me the ability to actually get shit done outside of work.

    4 votes
  10. [2]
    lou
    Link
    I have read this term several times but I never read the posts. I thought "vibe coding" was when a bunch of programmers went to a discotheque and coded while dancing on a stage like DJs. You...

    I have read this term several times but I never read the posts. I thought "vibe coding" was when a bunch of programmers went to a discotheque and coded while dancing on a stage like DJs. You known, coding according to the vibe. Now that I googled it, I have to say, my version is way cooler.

    20 votes
    1. smores
      Link Parent
      This is called Live Coding and it’s way cooler than vibe coding! I did this a bit in college

      This is called Live Coding and it’s way cooler than vibe coding! I did this a bit in college

      2 votes