• Even a16z is walking this back now. I wrote about why the “vibe code everything” thesis doesn’t hold up in two recent pieces:

    (1) https://philippdubach.com/posts/the-saaspocalypse-paradox/

    (2) https://philippdubach.com/posts/the-impossible-backhand/

    Acharya’s framing is different from mine (he’s talking book on software stocks) but the conclusion is the same: the “innovation bazooka” pointed at rebuilding payroll is a bad allocation of resources. Benedict Evans called me out on LinkedIn for this (https://philippdubach.com/posts/is-ai-really-eating-the-worl...) take, which I take as a sign the argument is landing..

    • > Benedict Evans called me out on LinkedIn for this take, which I take as a sign the argument is landing.

      Excellent. And correct lol.

  • Sounds like a16z has some rapidly depreciating software equity they want to sell you.

    Or maybe they own the debt.

    Listen to some of the Marc Andreessen interviews promoting cryptocurrency in 2021.

    Do that and you will never listen to him or his associates again.

  • I dunno.

    I really hate the expression "the new normal", because it sort of smuggles in the assumption that there exists such thing as "normal". It always felt like one of those truisms that people say to exploit emotions like "in these trying times" or "no one wants to work anymore".

    But I really do think that vibe coding is the "new normal". These tools are already extremely useful, to a point where I don't really think we'll be able to go back. These tools are getting good enough that it's getting to a point where you have to use them. This might sound like I'm supportive of this, and I guess am to some extent, but I find it to be exceedingly disappointing because writing software isn't fun anymore.

    One of my most upvoted comments on HN talks about how I don't enjoy programming, but instead I enjoy problem solving. This was written before I was aware of vibe coding stuff, and I think I was wrong. I guess I actually did enjoy the process of writing the code, instead of just delegating my work to a virtual intern while I just watch the AI do the fun stuff.

    A very small part of me is kind of hoping that once AI has to be priced at "not losing money on every call" levels that I'll be forced to actually think about this stuff again.

    • I largely agree with you. And, given your points about “not going back” — how do you propose interviewing SWEs?
      • I have thought about this a lot, and I have no idea. I work for an "AI-first" company, and we're kind of required to use AI stuff as often as we can, so I make very liberal use of Codex, but I've been shielded from the interview process thus far.

        I think I would still kind of ask the same questions, though maybe a bit more conceptual. Like, for example, I might see if I could get someone to explain how to build something, and then ask them about data structures that might be useful (e.g. removing a lock by making an append-only structure). I find that Codex will generally generate something that "works" but without an understanding data structures and algorithms, its implementation will still be somewhat sub-optimal, meaning that understanding the fundamentals has value, at least for now.

  • All these articles seem to think people will vibe code by prompting:

    make me my own Stripe

    make me my own Salesforce

    make me my own Shopify

    It will be more like:

    Look at how Lago, an open-source Stripe layer, works and make it work with Authorized.net directly

    Look at Twenty, an open-source CRM, and make it work in our tech stack for our sales needs

    Look at how Medusa, an open-source e-commerce platform, works and what features we would need and bring into our website

    When doing the latter, getting a good enough alternative will reduce the need for commercial SaaS. On top of that, these commercial SaaS are bloated with features in their attempt to work with as many use cases as possible and configuring them is “coding” by another name. Throw in Enshittification and the above seems to the next logical move by companies looking to move off these apps.

    • The right move is this, turned to 11.

      Velocity or one-shot capability isn't the move. It's making stuff that used to be traumatic just...normal now.

      Google fucking vibe-coded their x86 -> ARM ISA changeover. It never would have been done without agents. Not like "google did it X% faster." Google would have let that sit forever because the labor economics of the problem were backwards.

      That doesn't MATTER anymore. If you have some scratch, some halfway decent engineers, and a clear idea, you can build stuff that was just infeasible or impossible. all it takes is time and care.

      Some people have figured this out and are moving now.

      • Exactly, if the engineers know where to look for the solution in open-source code and point the AI there, it will get them there. Even if the language or the tech stack are different, AI is excellent at finding the seams, those spots where a feature connects to the underlying tech stack, and figuring out how the feature is really implemented, and bringing that over.
    • So maybe the saas will pivot to just sell some barebone agents that include their real IP? The rest (UI, dashboards and connectivity) will be tailored made by LLMs
  • j45
    Just because we can code something faster or cheaper doesn't increase the odds it will be right.
    • Arguably it does, because being able to experience something gives you much more insight into whether it's right or not - so being able to iterate quickly many times, continuously updating your spec and definition of done should help you get to the right solution. To be clear, there is still effort involved, but the effort becomes more about the critical evaluation rather than the how.
      • But that's not the only problem.

        To illustrate, I'll share what I'm working on now. My companies ops guy vibe coded a bunch of scripts to manage deployments. On the surface, they appear to do the correct thing. Except they don't. The tag for the Docker image used is hardcoded in a yaml file and doesn't get updated anywhere unless you do it manually. The docs don't even mention half of the necessary scripts/commands or implicit setup necessary for any of it to work in the first place, much less the tags or how any of it actually works. There are two completely different deployment strategies (direct to VM with docker + GCP and a GKE-based K8s deploy). Neither fully work, and only one has any documentation at all (and that documentation is completely vibed, so has very low information density). The only reason I'm able to use this pile of garbage at all is because I already know how all of the independent pieces function and can piece it together, but that's after wasting several hours of "why the fuck aren't my changes having an effect." There are very, very few lines of code that don't matter in well architected systems, but many that don't in vibed systems. We already have huge problems with overcomplicated crap made exclusively by humans, that's been hard enough to manage.

        Vibe coding consistently gives the illusion of progress by fixing an immediate problem at the expense of piling on crap that obscures what's actually going on and often breaks exiting functionality. It's frankly not sustainable.

        That being said, I've gotten some utility out of vibe coding tools, but it mostly just saves me some mental effort of writing boring shit that isn't interesting, innovative, or enjoyable, which is like 20% of mental effort and 5% of my actual work. I'm not even going to get started on the context switching costs. It makes my ADHD feel happy but I'm confident I'm less productive because of the secondary effects.

        • The post you’re r replying to gets this right- lead time is everything. The fast you can iterate, the more likely that what you are doing is correct.

          I’ve had a similar experience to what you’re describing. We are slower with AI… for now. Lean into it. Exploit the fact that you can now iterate much faster. Solve smaller problems. Solve them completely. Move on.

  • Both AI Fanatics and AI Luddites need to touch grass.

    We work in Software ENGINEERING. Engineering is all about what tools makes sense to solve a specific problem. In some cases, AI tools do show immediate business value (eg. TTS for SDR) and in other cases this is less obvious.

    This is all the more reason why learning about AI/ML fundamentals is critical in the same way understanding computer architecture, systems programming, algorithms, and design principles are critical to being a SWE, because then you can make a data-driven judgment on whether an approach works or not.

    Given the number of throwaway accounts that commented, it clearly struck a nerve.

  • Let's just look at Dijkstra's On the Foolishness of "Natural Language Programming". It really does a good job at explaining why natural language programming (and thus, Vibe Coding) is a dead end. It serves as a good reminder that we developed the languages of Math and Programming for a reason. The pedantic nature is a feature, not a flaw. It is because in programming (and math) we are dealing with high levels of abstraction constantly and thus ambiguity compounds. Isn't this something we learn early on as programmers? That a computer does exactly what you tell it to, not what you intend to tell it to? Think about how that phrase extends when we incorporate LLM Coding Agents.

      | The virtue of formal texts is that their manipulations, in order to be legitimate, need to satisfy only a few simple rules; they are, when you come to think of it, an amazingly effective tool for ruling out all sorts of nonsense that, when we use our native tongues, are almost impossible to avoid.
      - Dijkstra
    
    All of you have experienced the ambiguity and annoyances of natural language. Have you ever:

      - Had a boss give you confusing instructions?
      - Argued with someone only to find you agree?
      - Talked with someone and one of you doesn't actually understand the other?
        - Talked with someone and the other person seems batshit insane but they also seem to have avoided a mental asylum?
      - Use different words to describe the same thing?
        - When standing next to someone and looking at the same thing?
      - Adapted your message so you "talk to your audience"?
        - Ever read/wrote something on the internet? (where "everyone" is the audience)
    
    Congrats, you have experienced the frustrations and limitations of natural language. Natural language is incredibly powerful and the ambiguity is a feature and a flaw, just like how in formal languages the precision is both a feature and a flaw. I mean it can take an incredible amount of work to say even very simple and obvious things with formal languages[1], but the ambiguity disappears[2].

    Vibe Coding has its uses and I'm sure that'll expand, but the idea of it replacing domain experts is outright laughable. You can't get it to resolve ambiguity if you aren't aware of the ambiguity. If you've ever argued with the LLM take a step back and ask yourself, is there ambiguity? It'll help you resolve the problem and make you recognize the limits. I mean just look at the legal system, that is probably one of the most serious efforts to create formalization in natural language and we still need lawyers and judges to sit around and argue all day about all the ambiguity that remains.

    I seriously can't comprehend how on a site who's primary users are programmers this is an argument. If we somehow missed this in our education (formal or self) then how do we not intuit it from our everyday interactions?

    [0] https://www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD667...

    [1] https://en.wikipedia.org/wiki/Principia_Mathematica

    [2] Most programming languages are some hybrid variant. e.g. Python uses duck typing: if it looks like a float, operates like a float, and works as a float, then it is probably a float. Or another example even is C, what used to be called a "high level programming language" (so is Python a celestial language?). Give up some precision/lack of ambiguity for ease.

    • Dijkstra also said no one should be debugging and yet here we are.

      He's not wrong about the problems of natural language YET HERE ARE. That would, I think, cause a sensible engineer to start poking at the predicate instead of announcing that the foregone conclusion is near.

      We should take seriously the possibility that this isn't going to be in a retrenchment which bestows a nice little atta boy sticker on all the folks who said I told you so.

    • > Vibe Coding has its uses and I'm sure that'll expand, but the idea of it replacing domain experts is outright laughable.

      I don't think that's the argument. The argument I'm seeing most is that most of us SWEs will become obsolete once the agentic tools become good enough to allow domain experts to fully iterate on solutions on their own.

      •   > The argument I'm seeing most is that most of us SWEs will become obsolete
        
        That is equivalent to "replacing domain experts", or at least was my intent. But language is ambiguous lol. I do think programmers are domain experts. There are also different kinds of domain experts but I very much doubt we'll get rid of SWEs.

        Though my big concern right now is that we'll get rid of juniors and maybe even mid levels. There's definitely a push for that and incentives from an economic point of view. But it will be disastrous for the tech industry if this happens. It kills the pipeline. There can be no wizards without noobs. So we have a real life tragedy of the commons situation staring us in the face. I'm pretty sure we know what choices will be made, but I hope we can recognize that there's going to need to be cooperation to solve this least we all suffer.

  • >> Anish Acharya says it is not worth it to use AI-assisted coding for all business functions. AI should focus on core business development, not rebuilding enterprise software.

    I don't even know what this means, but my take: we should stop listening to VCs (especially those like A16Z) who have an obvious vested interest that doesn't match the rest of society. Granting these people an audience is totally unwarranted; nobody but other tech bros said "we will vibe code everything" in the first place. Best case scenario: they all go to the same exclusive conference, get the branded conference technical vest and that's were the asteroid hits.

  • a16z talking again?

    This is your regular reminder that

    1) a16z is one the largest backers of LLMs

    2) They named one of the two authors of the Fascist Manifesto their patron saint

    3) AI systems are built to function in ways that degrade and are likely to destroy our crucial civic institutions. (Quoted from Professor Woodrow Hartzog "How AI Destroys Institutions"). Or to put it another way, being plausible but slightly wrong and un-auditable—at scale—is the killer feature of LLMs and this combination of properties makes it an essentially fascist technology meaning it is well suited to centralizing authority, eliminating checks on that authority and advancing an anti-science agenda (quoted from the A plausible, scalable and slightly wrong black box: why large language models are a fascist technology that cannot be redeemed post).

    • This wasn't a16z monolithically speaking as a firm, it was Anish Acharya talking on a podcast.

      Seems like he's focused on fintech and not involved in many of their LLM investments

    • I will not claim to be an expert historian but one general belief I have is that nomenclature undergoes semantic migration over a century. So for the sake of conciseness I will quote the first demand of each portion of the Fascist Manifesto. This isn't to obscure, because it is in Wikipedia[0] and translated in English on EN Wikipedia[1], but so I can share a sample of whether this is something we can relate to our present day political orientation. Hopefully it will inform what you believe "author of the Fascist Manifesto" to imply:

      > ...

      > For this WE WANT:

      > On the political problem:

      > Universal suffrage by regional list voting, with proportional representation, voting and eligibility for women.

      > ...

      > On the social problem:

      > WE WANT:

      > The prompt enactment of a state law enshrining the legal eight-hour workday for all jobs.

      > ...

      > On the military issue:

      > WE WANT:

      > The establishment of a national militia with brief educational services and exclusively defensive duty.

      > ...

      > On the financial problem:

      > WE WANT:

      > A strong extraordinary tax on capital of a progressive nature, having the form of true PARTIAL EXPROPRIATION of all wealth.

      > ...

      0: https://it.wikipedia.org/wiki/Programma_di_San_Sepolcro#Test...

      1: https://en.wikipedia.org/wiki/Fascist_Manifesto#Text

  • Vibecoding is a net wealth transfer from frightened people to unscrupulous people.

    Machine assisted rigorous software engineering is an even bigger wealth transfer from unscrupulous people to passionate computer scientists.