50 comments

  • tekacs19 hours ago
    I&#x27;ve said for a long time that composability in software is a bit like playing Tetris: the lines have to clear.<p>I feel like that gives an even more literal tower-rising metaphor, and that&#x27;s what it feels like people using agents naively (and software engineers of lower skill or earlier-career), end up violating.<p>Agents are getting better at folding things into themselves, especially if you direct them to... but unfortunately I&#x27;ve found that the architectural instincts, even of Fable and 5.6 Sol, are still wildly behind what I reflexively achieve, say.<p>For sure there is an ability to have agents go back over work and try to fold it into better and better abstractions until it&#x27;s sort of annealed into something good. I&#x27;ve done something similar on codebases that I have, but the &#x27;high reaches&#x27; of architecture with great _prediction of how the software will evolve in the future_ in _subtle_ ways – those are, for now, out of reach of agents.<p>There is a part of me that wonders if it&#x27;s partly just how much they can hold in their head right now, though. Even with the greatest articulation and high density of feeding them, the current setups don&#x27;t allow them to hold a high-quality, sparse, &#x27;zoomable&#x27; model of the world in their head that well yet, which we can do pretty well.<p>But the fact that I&#x27;m talking about it in terms of that kind of subtlety is itself promising, I guess?
    • Animats19 hours ago
      The upper bound on program complexity used to be the power of the human mind. &quot;Vibe coding&quot; can break through that barrier. But not because the problem being solved needs that complexity. Because the process does not drive itself towards compact abstractions. It&#x27;s the AI-powered version of the scaling problem Brooks described back in &quot;The Mythical Man-Month&quot;. The combinatoric problems get worse with scale. Concretely, multiple similar implementations of roughly the same thing appear in different parts of the project. This is a known problem of vibe coding now.<p>We need some way to make AI-driven coding strive for parsimony.
      • conartist619 hours ago
        Why would it? It has optimized what it was built to optimize: this is the token-selling industry. Take note that the people hawking the dream of a gold rush are not actually mining but selling shovels
        • ashdksnndck18 hours ago
          Same issue happens in models trained by organizations who aren’t selling tokens. I believe it’s because being parsimonious is simply harder. Achieving the task at hand independently and declaring the job done is easier than building an abstraction and reconciling between every use case.
          • radarsat115 hours ago
            Agreed. I&#x27;ve noticed this happens without fail in any project driven primarily by &quot;tickets&quot; and &quot;sprints&quot;. Finishing the immediate task ends up taking precedence over future concerns that cover a wider scope. On the other end of the spectrum it&#x27;s easy to spend too much time at the beginning humming and hawing about the best, most future proof design, because you just <i>know</i> you&#x27;re not going to be able to easily fix it later. As is often the case, the right approach is somewhere inbetween, which is partly why it&#x27;s a hard process to automate. you&#x27;re constantly making judgement calls.
            • marcus_holmes8 hours ago
              I have a vaguely-relevant war story.<p>1998 - Huge business, re-writing some vital piece of the platform in the middle of Y2K. Contract coders are expensive but also the only available people to throw at this.<p>The architect had mapped out the entire system down to class&#x2F;method level. They&#x27;d produced a huge list of classes and methods that needed to be built. So the company hired a bunch of contract coders to build said classes and methods, including your humble protagonist. We were each given a list of methods to write up - parameters, operation, expected output. We wrote them up, and ticked them off the list. We were not briefed on how they interacted. There were no tests that we could run. There was apparently no-one checking that what we wrote in the method actually matched the spec. This was before git, so version control was extremely rough, and also before JIRA (iirc the list was an Access database).<p>We all realised very quickly, like the first week, that this entire project was doomed. But we were getting paid a <i>lot</i> of money to do this, so we just did it. It got really boring really quickly. Every day we wrote a bunch of methods, and next day got a list of the next set of methods to write. The lists just kept coming, with no idea how long the master list was, or how the classes interacted with each other, or how the system actually worked, or anything.<p>I left after a month. The money was good, but the boredom was driving me insane.<p>I learned later from friends who stayed that the whole project was canned a couple of months later when it became obvious that this was a complete waste of money and would never work.<p>Whenever I see a project manager staring at JIRA instead of talking to their people or looking at the codebase, I&#x27;m reminded of this project. And your comment reminded me of that ;)
              • zeafoamrun6 hours ago
                Crazy to think that if it was specced out so well, a modern LLM would make short work of the whole thing. The things we used to get paid for!
                • conartist624 minutes ago
                  lolol you&#x27;re joking right? as a joke it&#x27;s funny. If you think thats <i>really</i> what it sounds like when a project&#x27;s design is well-understood... ... ...
        • tekacs17 hours ago
          Labs are trying to make long-horizon work. Even if you&#x27;re a coding agent, adding more and more surface area is distracting to that goal. There is reason that RL over long traces should, at least in principle, optimize for building in ways that help the result fit in the model&#x27;s context window.<p>A meaningful risk of course is that the tools available to the model (ripgrep + fancier semantic approaches) allow it to do a good job of reasoning over things much larger than its context window, and so it doesn&#x27;t pay the penalty sufficiently to fix it.
          • conartist616 hours ago
            Does that not sound a little silly to you when you say it? Should I invest in becoming a memory athlete as a way of becoming a better software engineer? ...or should I learn how to build and use tools?
            • gnatolf16 hours ago
              While I don&#x27;t disagree, memory certainly was more of a restrictions on us humans than it is on llms. Therefore, the answer may not be as obvious as it seems. We build abstractions to reduce (memory) footprint of features, right?
              • chongli15 hours ago
                Humans built codebases many millions of lines long, well before LLMs existed. Human memory has not been a restriction on us in a long time.<p>Look at all the libraries full of books we&#x27;ve built. It&#x27;s useful for more than mere training sets.
                • conrs14 hours ago
                  I think the trick here is plural; I guarantee no single human knows all 1 million lines. Note this is different than knowing how to orient yourself in a million line codebase quickly.<p>The limit here I think the ancestor comments are getting at is cognitive load, which is real and measured. We only have so much memory to devote to a &quot;stack&quot; when executing, and it&#x27;s usually quite constrained.
                  • chongli14 hours ago
                    <i>Note this is different than knowing how to orient yourself in a million line codebase quickly.</i><p>Hence my library mention. Humans have been doing this for millennia: orienting ourselves within a library (the physical kind, full of books) and calling upon its information resources as needed to accomplish tasks (research). Ultimately, it&#x27;s all just one big cache hierarchy. Your short term memory, your long term memory, the book in your hands, the desk at the library, the nearby shelves, the card catalogue, the stacks, the inter-library loan system.<p>To manage it all, we humans have developed our abilities for abstraction. When we build clean, tight abstractions we reduce our cognitive load. Perhaps the best abstraction we&#x27;ve built so far is the TCP&#x2F;IP and web stack. We don&#x27;t need to care at all about the hardware details of a server in order to talk to it. It&#x27;s such a powerful and airtight abstraction that we take it for granted.<p>I&#x27;d like to hear from more people who have spent a lot of time building with LLMs, because so far what people are saying is that these models do not have the ability to reason about and build the kind of marvellous abstractions us humans have built.
                    • conrs14 hours ago
                      Fair, my mistake.<p>I&#x27;ve built a lot with LLM&#x27;s, my experience sort of but not really tracks that. I&#x27;ve had to course correct a few bad abstractions but the larger the code base becomes the better it seems to be at reusing things. Maybe this is because of types, or spec-first development (with OpenAPI), or black box integration testing - but also maybe not. But generally I have to think about the abstractions and let the LLM fill in the details with rare exception.
                      • conartist613 hours ago
                        I built a web-OS, a graphical IDE, and a version control system to replace git, all in about 40,000 lines of highly abstracted Javascript. If you&#x27;re thinking about how important it is to be able to maintain million-line codebases, I suspect you might have substituted a metric for the actual end goal.
                        • psychoslave6 hours ago
                          That looks like a nice feat, can you share a repo?<p>That said, reality at scale always come with details that will break the model, and the main roads when it happens are to ignore&#x2F;reject any change proposal in the model, go in the mystic quest to reach a model that will fit it all including these new cases with an elegant simple solution, or accommodate special cases on the side until it grows too big or just percolate too fast in the main part to let it be sustainable.
                          • conartist62 hours ago
                            It&#x27;s a GitHub org: <a href="https:&#x2F;&#x2F;github.com&#x2F;bablr-lang" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;bablr-lang</a><p>Basically we&#x27;ve taken the &quot;mystic quest&quot; route, but we now have a pretty damn good data model
        • nomel16 hours ago
          All the open weight models, that are given away for free, across orgs and even nations, are using the same methods to achieve high performance.<p>What&#x27;s more profitable, optimizing for inference time or optimizing to increase inference time by increasing token count?
      • ColdStream13 hours ago
        The question is that if it can go beyond the upper limit of human mind complexity, would we be able to understand it or use it?<p>I cannot remember who it was but there was an author who was traveling with their dog. They noticed that their dog would always pee on various tree to mark them as their territory. On their travels they ended up need some giant Red wood trees and figured, &quot;I want to give my dog the ultimate claim of territory.&quot;<p>So he took his dog up to the Red wood tree and it did nothing, instead the dog wandered over to a smaller sapling and peed on that instead. The problem was the Red wood was so big and alien to the dog, it didn&#x27;t recognize it as a tree.<p>I do wonder how many things are like that in our universe, that even if we could see them, we just wouldn&#x27;t be able to understand it because it just goes beyond what we are capable of understanding. We think we have a grasp of the universe and use models to codify it but that is no guarantee that we can truly &#x27;get it&#x27;.<p>Could higher level AI code be like that, would we know when we see it?
        • psychoslave6 hours ago
          If we would be able to act that consciously, humanity would be flourishing without anyone sent to war or starvation.<p>It doesn&#x27;t look like we are that bright, at least collectively. And if they are individual which are really above everyone else on that matter and the rest, like maybe you but definitely not me, then their individual power seems to be unable to move us all away from our collective ill habits.
        • jambalaya811 hours ago
          Excellent post.
      • khafra5 hours ago
        A friend of mine built just built a project for doing something like that, although it&#x27;s built on enforcing a spec rather than elegance: <a href="https:&#x2F;&#x2F;medium.com&#x2F;@joeldg&#x2F;architecting-out-of-the-vibe-how-to-enforce-compliance-in-ai-coded-apps-42b9d0113321" rel="nofollow">https:&#x2F;&#x2F;medium.com&#x2F;@joeldg&#x2F;architecting-out-of-the-vibe-how-...</a>
      • fooqux16 hours ago
        &gt; The upper bound on program complexity used to be the power of the human mind.<p>Maybe for simple one-person projects. We&#x27;ve long since developed methods and models to allow us to make things bigger than ourselves. Linux, SAP, etc. These software projects are not held in the mind of a single developer. But we use structure, rules, and other tools so that the pieces still fit together.
        • RevEng6 hours ago
          They said &quot;the&quot; human kind, not &quot;one&quot; human mind. Even with structures, rules, and other tools, we are limited in the amount we can abstract, comprehend, and communicate. As projects get larger, we inevitably see a friction develop where coordination breaks down and we turn to isolation and responding to failures at the boundaries. This is where complexity in design of an individual system ends. Larger ecosystems aren&#x27;t designed or coordinated - they emerge organically as each tries to adapt to the other. If only we could handle such complexity, we could design efficient systems that don&#x27;t suffer from the same waste.
          • fooqux5 hours ago
            Fair enough.<p>I do worry what that will mean for projects such as Linux though. Not that I think it will die or anything, but rather that it will become so fragmented that forward movement ceases.
      • petra13 hours ago
        That&#x27;s an interesting question.<p>What happens if we take the most abstract libraries in any given field - and:<p>1. Bound to the llm to only use those as building blocks. Does it affect his reasoning ? Will it think more abstractly ?<p>2. Train the llm on those, so maybe it will get a feel for abstraction ?
      • sroerick15 hours ago
        The Allegorical Agent-Aeon?
      • TacticalCoder16 hours ago
        &gt; &quot;Vibe coding&quot; can break through that barrier. But not because the problem being solved needs that complexity. Because the process does not drive itself towards compact abstractions.<p>It&#x27;s the infinite AI monkeys at a computer keyboard phenomenon.<p>Or the car on the highway that bumps left and right on the guardrails until, eventually, it arrives at its destination and nearly everybody is amazed at that great success.<p>The AI kool-aid drinkers are going to answer: <i>&quot;but that&#x27;s how human code too&quot;</i>.<p>And I&#x27;m really not sure about that.
        • bluefirebrand16 hours ago
          It&#x27;s perhaps how <i>some</i> humans code but frankly if you have those people employed to build software for you, you have big problems
          • pishpash16 hours ago
            That&#x27;s some idealistic nostalgia. Software is generally poorly built today, and it&#x27;s evidently not big enough a problem to fix.
            • munk-a16 hours ago
              Large companies that can keep themselves alive with regulatory capture - absolutely. For smaller companies that need to compete the software quality and ongoing cost of maintaining that software is a real consideration.<p>That isn&#x27;t to say software is perfectly built, but it&#x27;s usually pragmatically built to balance costs of development and correctness - well chosen abstractions let us push up both qualities at once.
              • tibco15 hours ago
                I think every type of company has ways to workaround software quality. B2B can tend to define the bug as the feature or too low priority.. B2C can often decide backwards compatibility simply doesn&#x27;t matter and just replace things with other things with only some actual feature overlap, etc.
    • arkmm16 hours ago
      I think part of the problem is the context windows for humans are actually much smaller than what an LLM can keep track of today. The small context window of humans is a feature that forces modularity and abstraction in software engineering so that you can decompose what you&#x27;re working on into something that can fit into your head. But since LLMs can fit so much more in their head, so to speak, they don&#x27;t have this same incentive, and you get the unorganized mess of spaghetti code that current agents often produce.
      • hahahaa7 hours ago
        Also a human has to explain the code. There is a social contract and producing slop gets you fired. Especially as you produce it much slower than an LLM.
    • sph7 hours ago
      &gt; I&#x27;ve said for a long time that composability in software is a bit like playing Tetris: the lines have to clear.<p>Great metaphor. When I hear people claim 20x productivity with AI assistance, I imagine a Tetris game where pieces fall 20x faster.<p>As you say, those lines still have to clear.
      • hahahaa7 hours ago
        Yeah I would love to sit down and see what exactly one of the 20x people us doing. Either I spot the flaw (99%) or there is some utter magic they are doing (1%) which I could try to learn.
    • _superposition_12 hours ago
      I can&#x27;t prove it but I have strong beliefs that the logic and intuition required for abstracting for future changes is not possible in a stream of predicted tokens. Mental models aren&#x27;t built from text. Something&#x27;s missing that can&#x27;t be measured.
      • tau52105 hours ago
        I believe similar.<p>Maybe not exactly the same thing, but I think one related representation of this in any good codebase is documentations in the code: Good documentation always focuses on the why and not the what. i.e. things that are not represented by or representable in code. It may describe not only why a certain choice was made, but also why not something else. In general, the whole point of these documentation is to account for things that are beyond what can be understood from just reading the codebase including other existing documentation, that you may never even imagine with all the tokens in the world otherwise, which were yet a critical part of our coding choices.<p>If we are to believe that LLMs can build complex systems, then it&#x27;s equivalent to saying that LLMs can make similar decisions equally well without any of that... which also then implies that we essentially never needed these documentation to begin with other than as redundancy for human needs.
      • Mikhail_Edoshin8 hours ago
        The real understanding builds on not knowing. Once I realise I don&#x27;t know something I cease thinking and start watching the thing. Then somehow I understand.<p>We do have a mechanism similar to LLMs but it provides existing knowledge; it&#x27;s a search mechanism, basically. New knowledge happens when we turn that mechanism off.
        • hahahaa6 hours ago
          LLMs can learn but only by copy paste into that tiny context. Actually theoretically they could self fine-tune but it would be very expensive&#x2F;slow.
    • rufasterisco9 hours ago
      &gt; There is a part of me that wonders if it&#x27;s partly just how much they can hold in their head right now, though. Even with the greatest articulation and high density of feeding them, the current setups don&#x27;t allow them to hold a high-quality, sparse, &#x27;zoomable&#x27; model of the world in their head that well yet, which we can do pretty well.<p>My personal experiments show that giving them tools to access to all past sessions over a codebase helps a lot. When I coded &quot;feature X&quot; 2 months ago i likely specifically mentioned some constraints expressed as abstractions and, if the coding agent checks not only the code&#x2F;feature it needs to implement&#x2F;change but also the past sessions over that, it picks them up, and ships code that better fits the overall project.<p>At least, more than &quot;architectural&#x2F;design guidelines&quot;, since they are more &quot;concrete&quot;, to the point for the task at hand.<p>Sessions self-preserve them for following sessions, which helps, but might also carry over stale things, so some &quot;pruning&quot; helps, and can be automated. Overall, as long as corrections were also made via agents and hence in sessions, they are picked up automatically.<p>It&#x27;s not the &quot;human zoom&quot; you refer to, which as humans we can drive&#x2F;control, but the effect seems to be similar: I read autonomous sessions where it picked up from the past the very design&#x2F;architecture&#x2F;abstraction points i would have driven, had I been in the loop.<p>In team contexts it should not be impossible to share sessions, but I not working in teams right now :D So maybe it&#x27;s also a &quot;single dev quirk&quot;.<p>Another point is that in a sense, learning to code goes from being told &quot;you are using the_wrong_abstraction&#x2F;this_abstraction_the_wrong_way&#x2F;no_abstraction_where_you_should_have&quot;, to telling it to others&#x2F;ourselves.<p>Since the number of knowable abstractions seems to be &quot;at least one more than I already know&quot;, agents can actually be helpful in learning.<p>After a certain threshold, it basically zeros in a specific domain, but on novel domains agents taught me abstractions, when nudged towards doing that.
    • segmondy15 hours ago
      Just a matter of time. Go download gpt2 or llama2 and be shocked at how bad they are compared to today. They were entirely &quot;useless&quot; yet we marveled at them. Go examine GPT3.5&#x2F;gpt4 out which was all the rage and then marvel at how a qwen27b or gemma31b model mops the floor today. My point is that the models will eventually learn to have a great model of software system in their head, just a matter of time and proper RL.
      • sph7 hours ago
        There is no Moore’s law for AI that shows that the previous rate of improvement will likely apply to the future. It’s all wishful thinking.
        • ozim7 hours ago
          There is bunch of rich and powerful assholes trying to protect their investments.<p>I am pretty sure rate of improvement will be there quite long in the future — even if it will be smoke and mirrors ;)
    • VMG17 hours ago
      Isn&#x27;t this just an effect of what the LLMs are RL&#x27;ed for? Solving short-horizon tasks.<p>I assume one can&#x27;t benchmaxx multi-year long efforts, clean architecture, taste etc as easily as these &quot;make tests pass&quot; tasks
    • throwaway2744817 hours ago
      &gt; the lines have to clear.<p>Sorry, the lines have to clear what? Surely there must be some kind of constraint on &quot;lines&quot; that they have to overcome.
      • edoceo17 hours ago
        The lines (rows) in Tetris have to become complete and then disappear to make room for the new falling pieces.<p>In code the thing has to become stable, can&#x27;t just keep packing more and more noise onto it.
        • tekacs17 hours ago
          Absolutely this: and it needs to ideally become the kind of set of abstractions that mean that every new thing added uses less net-new surface area than it would without them.
      • tekacs17 hours ago
        I mean that at the bottom of the Tetris board, the lines need to vanish so that the Tetris board keeps moving downward and doesn&#x27;t grow unbounded.
    • Cthulhu_16 hours ago
      I have a theory (armchair take here lmao) that AIs are trained on public code, but the biggest codebases are not public.<p>Although I suspect models from Google, Facebook and Microsoft can be trained on their massive internal codebases. Whether they are is another question.
      • mbreese16 hours ago
        I’m not sure you’d see that big of a difference in quality. There is quite a bit of cruft that can accumulate when you know the code will never be public.<p>But, you would probably see a difference of scale and architecture. Larger projects that need better organization are probably more likely to be in private codebases (Linux excluded). So you might be right about the lack of private code in LLM being an issue.
        • aleph_minus_one11 hours ago
          I have another thought on this:<p>At least in the past (before LLM-based code contributions got socially acceptable in some circles), in open-source project you often got very direct comments on code that was of bad quality. Yes, this was always a little bit abrasive, but it did a lot for the code quality.<p>For internal applications used at companies, such an abrasive behaviour is typically not accepted (&quot;not a team player&quot; (as if this is something bad), offended snowflakes, &quot;not socially adept&quot; etc.). Thus the code quality suffers quite a lot for internal applications.<p>Have you ever thought why salespeople have such an easy time selling some LLM for coding to big companies? Because the code quality of many internal applications is so bad, which makes even shitty LLM slop code often better than what is there.
    • stavros18 hours ago
      Agreed, and ever since LLMs started being able to write competent code, I&#x27;ve noticed a massive difference in quality on codebases where I knew the technology, and ones I didn&#x27;t. This is because I can much more efficiently steer the LLM on e.g. backend code, which is my expertise, vs yoloing everything on mobile, where I have no idea.<p>The codebases using technologies I have no idea about tend to quickly become unmaintainable and buggy, because the LLM still doesn&#x27;t make good architectural choices, but the codebases that use technologies I&#x27;m familiar with basically never devolve into unmaintainability.<p>The difference between the two is massive, and that&#x27;s why I think that a competent engineer steering an LLM in their area of expertise gets two orders of magnitude more productive, whereas someone steering an LLM in an area they know nothing about are basically producing tech debt at the speed of thought.
      • maest17 hours ago
        &gt; two orders of magnitude more productive<p>Shipping 100x more features per day?
        • Cthulhu_16 hours ago
          100x faster towards becoming an email client
        • stavros17 hours ago
          Yes.
          • Avicebron16 hours ago
            Do you have specifics? It would be interesting to see what kind of improvements are possible.
            • stavros16 hours ago
              I just see in my usage that I can release tens of features a day, whereas I&#x27;d be able to release one or two a day usually. I don&#x27;t know if it&#x27;s 100x, but it&#x27;s definitely more than 10x.<p>I&#x27;ve written up my process here:<p><a href="https:&#x2F;&#x2F;www.stavros.io&#x2F;posts&#x2F;how-i-write-software-with-llms&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.stavros.io&#x2F;posts&#x2F;how-i-write-software-with-llms&#x2F;</a><p>The biggest thing to get right is to let the LLMs do what they&#x27;re great at (code implementation from very detailed specs, and code review), and you do what humans are great (architecture and making sure the high level of the implementation is sane). That way, you get the best of both worlds, and a lot of speed at high quality.
              • wasabi99101114 hours ago
                Thanks for the detailed explanation of your process, I think I&#x27;ll try it out.
              • what9 hours ago
                Can you show us the 10s of features you’re releasing daily now?
                • stavros9 hours ago
                  I made this in two days:<p><a href="https:&#x2F;&#x2F;www.writelucid.cc&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.writelucid.cc&#x2F;</a>
                  • sph7 hours ago
                    Does this speed of development only apply to the early stages, or will it slow down as the codebase grows? I have yet to see these 100x improvements (and the claims themselves keep getting bigger) on anything more than prototype scale, rather than month-long projects.<p>No doubt AI boosters will claim we have found an O(1) productivity enhancer that is somehow two orders of magnitude better than anything else before. This is entering lunacy territory.
                    • stavros7 hours ago
                      To me, it applies as long as you can keep the state of the system in your head (so, same as we always did architecture).<p>For example, I built this over a month or so and never hit a slowdown or quality issue:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;skorokithakis&#x2F;stavrobot" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;skorokithakis&#x2F;stavrobot</a>
    • Gud18 hours ago
      Do you believe &quot;micro services&quot; can make a comeback? local daemons with an exposed API, each daemon vibe coded?
      • jdlshore17 hours ago
        Microservices don’t reduce complexity, they just move it to the interactions between services. You have the same fundamental design problem.<p>In other words, if you can’t design a modular monolith, you can’t design a set of microservices.
        • aleph_minus_one12 hours ago
          &gt; if you can’t design a modular monolith, you can’t design a set of microservices.<p>I somewhat disagree:<p>Yes, it is possible to design a modular monolith, but thinking about the system in terms of a &quot;minimum viable service&quot; (but keep an eye on &quot;viable&quot;, otherwise you can easily get into the &quot;interaction problem&quot;) makes it much easier.<p>This is very similar to how you can write programs with no implicit state in a imperative programming language, but doing this in a pure functional programming language such as Haskell is much easier.
      • swiftcoder18 hours ago
        Unless we are planning to deploy them all individually to an expensive serverless platform like Lambda, the coordination challenges and overprovisioning are going to more than outweigh whatever architectural benefit you reap (in human-centred development, micro services are solving an entirely different problem - Conway&#x27;s Law)
      • Cthulhu_16 hours ago
        What problem would it solve? They&#x27;re still part of a larger system ultimately. Sure, smaller codebases with more focused scope can be good for e.g. human individuals and LLMs, but there&#x27;s multiple ways to achieve that that don&#x27;t require a network boundary.
      • layer817 hours ago
        Microservices are about separate deployment. Regarding separating the development&#x2F;maintenance of components, you can achieve that in a monolith by composing it out of corresponding modules&#x2F;libraries with defined APIs. That’s good practice anyway.
      • CuriouslyC14 hours ago
        Not microservices, but something more akin to FaaS into a mesh, with a backing domain logic library.
      • throwaway2744817 hours ago
        Sure, why not? The same reasons they succeeded originally will work just as fine now.
      • stavros18 hours ago
        Please no.
        • jambalaya818 hours ago
          Lemme guess, you were in favour of monolithic systemd too?
          • permalac6 hours ago
            All have its space. Small team, do monolith or you&#x27;ll stop moving. Big teams, be wary of Conway&#x27;s law, and don&#x27;t fight it, probably some services will emerge.
    • 4b11b416 hours ago
      Hah Tetris that really matches my &quot;everyone has to draw their own line constantly&quot;.
  • ssivark19 hours ago
    The core thesis of this essay is reminiscent of the Lisp Curse [1] &#x2F; Bipolar Lisp Programmer [2].<p>It&#x27;s been a few years since I read these, but if I recall the argument there, it was that Lisp makes it <i>so easy</i> to build stuff and scratch exactly your own itch, that there&#x27;s no real strong push for lisp programmers to come together and collaborate to build non-trivial and general purpose artifacts. And that is why the landscape of public lisp software is poorer as a result, compared to languages which demand much more effort to get anything substantial done.<p>Armin seems to be making a very similar point about AI coding.<p>[1] <a href="https:&#x2F;&#x2F;www.winestockwebdesign.com&#x2F;Essays&#x2F;Lisp_Curse.html" rel="nofollow">https:&#x2F;&#x2F;www.winestockwebdesign.com&#x2F;Essays&#x2F;Lisp_Curse.html</a><p>[2] <a href="https:&#x2F;&#x2F;www.marktarver.com&#x2F;bipolar.html" rel="nofollow">https:&#x2F;&#x2F;www.marktarver.com&#x2F;bipolar.html</a>
    • mattmatheus15 hours ago
      Assembly programmers made the same argument. It seems that we revisit this same trope each time the practice of software engineering undergoes a paradigm shift.<p>Some have a harder time with the transition than others.
      • ozozozd7 hours ago
        Are you implying the author of one of the best, if not the best performing agentic coding harness is having a hard time with vibecoding as a new paradigm?<p>I’d look him up.
        • ryan_n1 hour ago
          Someone could make the best agentic coding harness in the world and still have a hard time with the drastic changes that are happening in their profession. The two aren&#x27;t mutually exclusive.
    • baq17 hours ago
      Au contraire if typescript and rust didn’t steal the whole show it’d be a great time to be a lisp LLM pilot: agents can explain pretty much everything without any confabulations nowadays, so the understanding problem essentially goes away, if you care, which is exactly the point of the article if you ask me.
      • ares62316 hours ago
        But at that point why use Lisp (which LLMs have been so far still to struggle to get matching parens every now and then)<p>What made Lisp cool and powerful goes away when you do it through an LLM.
        • sroerick15 hours ago
          I have a web framework running with a lisp interpreter built in, and I think it unlocks a LOT for the LLMs.
        • baq16 hours ago
          lisp can do things that make the currently accepted as standard best practice software engineering processes redundant, but it needs a different set of processes which I’m not sure are written about anywhere since apparently nobody is running with e.g. hot patching of application code
          • sroerick15 hours ago
            I&#x27;m doing fully interpreted Lisp with the AST stored in Postgres. I can access the REPL remotely and I honestly dont know if I&#x27;m ever going to build an API or CLI again
            • Aeolos14 hours ago
              This sounds super interesting. Do you have any blog or pointers where I could read more about this?
              • sroerick7 hours ago
                <a href="https:&#x2F;&#x2F;pricklypear.rocks&#x2F;welcome" rel="nofollow">https:&#x2F;&#x2F;pricklypear.rocks&#x2F;welcome</a> <a href="https:&#x2F;&#x2F;pricklypear.rocks&#x2F;code" rel="nofollow">https:&#x2F;&#x2F;pricklypear.rocks&#x2F;code</a><p>Just to be clear this is not a release, lol, I just made it to show a couple buddies. My one friend was saying he learned a lot just by reading code and pointing Claude at it and asking questions about what he didn&#x27;t understand. It is provided as-is with no warranty, or installation instructions. If you really get stoked about it I could probably clean up multi user stuff a bit to get you logged on, but I think even just the idea is pretty neat.
                • baq3 hours ago
                  If you got it popular you could license it to AWS and sell it as an Elastic Lisp Machine or something
    • segmondy15 hours ago
      Is it really the same argument? I think there&#x27;s enough of people that will argue that there will be no need to come together to collaborate, just rally a bunch of agents and you can build whatever non-trivial stuff you can imagine.
    • zephen17 hours ago
      &gt; compared to languages which demand much more effort to get anything substantial done.<p>It is not clear at all to me that other languages &quot;demand much more effort&quot; for the same end result.<p>It is clear that many non-lisp programmers value syntax, and many lisp programmers don&#x27;t. Even many people who programmed enough lisp to have their minds blown and expanded still prefer not to program in lisp. I&#x27;m still awaiting psychological studies on this, but the rift is so large, I think there may be some significantly different brain processing going on between the two groups.<p>To your point, yes, it is also clear that, to the extent that lisp can match the productivity of other languages, whether it exceeds them or not, one of the tools that is needed to achieve this productivity boost in lisp is heavy usage of homoiconicity, and this results in every serious lisp program being a collection of DSLs, each of which is only understood by one person or very few people.
      • kazinator12 hours ago
        &gt; <i>Even many people who programmed enough lisp to have their minds blown and expanded still prefer not to program in lisp.</i><p>I can guarantee you that most of these simply didn&#x27;t go far enough; they had their &quot;minds blown&quot; with too little. They latched onto a highlight or two, found a way of sort doing that in C++ or Javascript and moved on.<p>There are people who have had their &quot;minds blown&quot; by time&#x2F;mass dilation of special relativity, or phenomena in quantum physics, who don&#x27;t actually know anything about physics; they couldn&#x27;t work out how far a canon ball will land fired at a 45 degree angle with a certain velocity, though they can crack jokes about Schrödinger&#x27;s cat.<p>For those of us sticking with the Lisp program, in one way or another, it was more of a sequence of small revelations in a progression of topics. Oh, that&#x27;s a good way of representing that; that is pretty nicely thought out; that fits well with that; they had <i>that</i> how many decades ago? Sheesh; ...<p>Then once you start grappling with the Lisp issues, and kick the rock farther down the road, even in some small way, you are invested.
        • zephen55 minutes ago
          &gt; I can guarantee you that most of these simply didn&#x27;t go far enough;<p>And I can guarantee that I knew, when I wrote my comment, that I was summoning this very &quot;No true Scotsman&quot; argument.<p>&gt; they couldn&#x27;t work out how far a canon ball will land fired at a 45 degree angle with a certain velocity, though they can crack jokes about Schrödinger&#x27;s cat.<p>It always superciliously starts with how true lisp people are the most brilliant ever.<p>&gt; Then once you start grappling with the Lisp issues, and kick the rock farther down the road, even in some small way, you are invested.<p>And is eventually undermined by an admission of cognitive inflexibility, although not usually so quickly or in the same comment. Good job!
      • nico14 hours ago
        &gt; Even many people who programmed enough lisp to have their minds blown and expanded still prefer not to program in lisp<p>For me, the answer to this is economics. Even if you love lisp, there are way more companies hiring for stacks that don’t include lisp<p>If you then optimize for employability, which I assume most developers do (not all, but a large percentage), you might end up with not that many people practicing lisp regularly
        • zephen1 hour ago
          &gt; For me, the answer to this is economics. Even if you love lisp, there are way more companies hiring for stacks that don’t include lisp<p>Certainly. But why would that be? It couldn&#x27;t possibly be that the programmers already there built a system using the tools of their choice, and that system is now running well and deemed maintainable enough they require additional developers for the same language, could it?<p>Sometimes, of course, companies change their implementation language. The most famous cases I know of this are Viaweb and reddit, where the companies moved away from lisp. The company&#x27;s main motive in this, of course, is making money. If they have a good product that is deemed maintainable, why would they piss off the original team, who probably chose the language, by switching languages?<p>Many programmers have worked in lisp. Studies have shown that programmers routinely learn new languages and somewhat forget old ones; older programmers are typically only currently proficient in as many languages as younger ones.<p>A company with a successful product is going to attempt to leverage that success. Whether leveraging it looks like incrementally improving it, or like treating it as a prototype and throw it out, will typically be a long conversation between developers and management. Typically incremental improvements are greatly preferred; it is only when all stakeholders become convinced that a fresh start is required that massive changes like implementation language will take place.<p>The calculus, of course is changing with LLMs. See, for example, the recent migration of bun away from zig. That rewrite was spearheaded by a massively effective lone developer, the exact persona that is claimed to always prefer lisp. Sadly, he chose rust.
  • jbarber33 minutes ago
    This reminded me of Naur&#x27;s &quot;Programming as Theory Building&quot; [1], the article&#x27;s &quot;the common understanding of what its concepts mean, where the boundaries are, which invariants matter, who owns what, and why the system has the shape it does&quot; is Naur&#x27;s theory, and the author&#x27;s &quot;friction&quot; is what teams build that theory.<p>I guess whether AI written code means you can&#x27;t build a theory of a program is an open question - but I don&#x27;t see why you can&#x27;t have AI written code that keeps the system knowable and extendable, in the same way that any long lived program or system can be. It&#x27;s _just_ a question of being disciplined in the same way you&#x27;d need to be with developing and maintaining any long lived artefact.<p>[1] <a href="https:&#x2F;&#x2F;pages.cs.wisc.edu&#x2F;~remzi&#x2F;Naur.pdf" rel="nofollow">https:&#x2F;&#x2F;pages.cs.wisc.edu&#x2F;~remzi&#x2F;Naur.pdf</a>
  • sixtyj19 hours ago
    &gt; There is the appealing idea that AI-assisted programming means better tools which lets us build more ambitious software. That is certainly true at the level of the individual and without doubt a developer with an agent will be dramatically more capable of changing a codebase. But large software projects have never been limited only by how quickly an individual can produce code. They are limited by how well people can coordinate their understanding of the system they are changing.<p>So true.<p>Since Nov 30, 2022 everything has become… more complex.
    • overgard18 hours ago
      I feel like with software, things have gotten way too complicated (just layer&#x27;s upon layers upon layers). But to deal with that complexity, now we&#x27;re using something that just creates WAY more complexity. I&#x27;ve been coding for a while, and I remember the 90s and early 00s where people could make pretty powerful applications with like visual basic or php with essentially no formal training. Those technologies weren&#x27;t <i>great</i>, but they were really simple and easy to pick up. In contrast, if you try to pick up web development or desktop app development today, it&#x27;s absolutely overwhelming. Like, something like React is <i>useful</i> but the amount of things you need to know to use it properly is pretty high.<p>I think introducing AI to deal with this is overall a mistake though. We&#x27;re just adding more complexity on top of the existing complexity. At best, it&#x27;s a massive waste of hardware. At worst, we&#x27;ll probably have agents introducing as many bugs as they fix as they also drown in complexity, and a lot of stuff built using these techniques are going to be fragile garbage while the overall skillset of humanity diminishes because people aren&#x27;t learning the skills anymore.<p>Fundamentally, software does not need to be this complicated and it&#x27;s a solvable problem, but it does require people that care about craftsmanship.
      • throwaway21945017 hours ago
        I had a discussion with folks at work about what information is worth retaining in the face of AI doing everything for us. A lot of what we have in our heads to qualify as &quot;domain experts&quot; is pretty esoteric. How to invoke command line tools, gotchas because library A uses one convention over library B, AWS vs GCP; so much is specific to a tool rather than a method. There are also a lot of entrenched tools that are effectively unfixable due to the risk of breaking changes, so you have to shrug and accept + learn that&#x27;s how it works.<p>Catch-22 is it&#x27;s still important to know the fundamentals so you know what to ask for, but if you don&#x27;t know the esoterica, the model is eventually going to make an assumption and screw things up. And the models don&#x27;t have much taste either in prose, or in coding&#x2F;comment style.
        • galaxyLogic13 hours ago
          Yes I think the problem is not that AI &quot;has all the answers&quot;. It is that we don&#x27;t have &quot;all the questions&quot;. If we don&#x27;t understand the whole of what AI produces for us, we can&#x27;t ask it to make parts of it different. We are not in control any more of what exactly is produced, and we don&#x27;t want to give AI all the control, because then it would not be doing what we want it to do.<p>Therefore it is critical that whatever AI produces is understandable to us humans. That is why we must demand that AI tools and agents produce &quot;well designed&quot; well-structured software. That&#x27;s the bottlenexk to progress I think. Even AI can&#x27;t deal with exponential complexity explosion.
      • SoftTalker17 hours ago
        And what&#x27;s ironic is that a lot of those layers and complexity were added with the stated goal of making it easier for average developers to build applications.
        • bunderbunder44 minutes ago
          That is the nominal motive, but I think that the real motive is that it makes it easier for average developers to pile on more complexity.<p>Back in the day we just accepted technical constraints that didn’t prevent us from doing anything mission critical. So the UIs weren’t paragons of personal expression, probably there was only one database which didn’t have any scale out features at all, and nothing scrolled infinitely. And I do think that tended to make things easier to fit into your head, because the number of distinct APIs and module interactions you needed to understand was much smaller.<p>But also none of it was integrated with Alexsirtanapilot, so everyday life was an endless misery.
        • sylye6 hours ago
          [dead]
      • sixtyj17 hours ago
        Amen.<p>Drowning in complexity. Paralysis of choice.<p>I read a comment (joke) that if you want to follow all LLM development you should have to be unemployed.
    • lelanthran18 hours ago
      &gt; They are limited by how well people can coordinate their understanding of the system they are changing.<p>It&#x27;s not really news, though. Programming as Theory Building (Peter Naur) was published in the 80s, I think?<p>Maybe the younger entrants to this field never came across it, but even if you never came across it, it was common knowledge amongst experienced devs that understanding of the system you are about to change is crucial.
      • sixtyj18 hours ago
        The complexity of coordinating a project involving more than one entity is, of course, an issue across all industrial sectors—just look at the construction industry.<p>Thanks for mentioning Peter Naur’s Programming as Theory Building (1985).<p>I would add Fred Brooks and his The Mythical Man-Month.
      • jgalt21217 hours ago
        &gt; It&#x27;s not really news, though. Programming as Theory Building (Peter Naur) was published in the 80s, I think?<p>The news is that Agentic Programming has made this always challenging task even more challenging.
        • sixtyj14 hours ago
          Challenging. Adventurous. And tiring.<p>It’s global madness fired up by continuous stream of news from LLM providers. It’s like The Verge that is almost about FAANG only, but multiplied as it is “magic” for most people, as vibe coding is “so easy” and dopamine-producing activity that it is similar to runners that don’t want to stop as it stimulates them (and in this case ofc it is healthy :)
          • bjelkeman-again8 hours ago
            I knew a runner that was wearing his body down. His joints where giving up. I predicted he would become a cripple. He wouldn’t stop running despite knowing. He was addicted. Some stories about prompting agents feel like that to me.
      • StackOptimist13 hours ago
        [flagged]
    • calvinmorrison19 hours ago
      I don&#x27;t know. some stuff has gotten less. Major databases now ship effective HA tooling, microservices seem on their way out, structured databases seem to be back in instead of NoSQL.<p>HTML and pre-rendering are back in, HTMx, liveview<p>The degaussing of CSS and the hacks we did, hell i was trying to explain how we debugged web pages in IE6 to a younger staff member today.<p>Some things are more complex, some things got good enough to make them less complex.
      • paulryanrogers19 hours ago
        &gt; Major databases now ship effective HA tooling<p>Which ones? PostgreSQL doesn&#x27;t have HA in core.
        • calvinmorrison19 hours ago
          MySQL 8, but upon review that was 2018. 5.7 had some but it&#x27;s certainly improved overall since then as well
      • endorphine18 hours ago
        A database with built-in HA is a significantly more complex system than one without it.
        • hilariously18 hours ago
          And one built without it and not coordinating with it is often much harder to reason about when you bolt it on later.
    • pixl9719 hours ago
      &gt;Since Nov 30, 2022 BC everything has become… more complex.<p>FTFY<p>Increasing complexity is the story of mankind. It&#x27;s the story of civilization.<p>Someone from 20,000 BC would wander around the earth trying to find food, trying not to freeze, and trying not to get eaten. Someone from 5,000 BC would be trying to <i>grow</i> food, hoping it rains, and hoping disease didn&#x27;t wipe out the village. The second one increases the complexity from all the systems required to manage people and keep the land growing. Today the vast majority of people on earth don&#x27;t grow their own food at all, and instead are busy in some way managing the complexity of a large society.<p>Someone from 1970-80 would think our software from pre-llm days was vastly more complex. They&#x27;d just code directly to the hardware with no abstraction layer. Now almost no one does that. We abstracted the hardware away in most cases. With cryptography libraries for the vast majority of people it&#x27;s complexity is abstracted away and mostly people are told &quot;don&#x27;t try to write your own crypto because you will fuck it up&quot;.<p>The question now becomes, how quickly will LLMs be able to coordinate their understanding of the system they are changing?
      • qsera18 hours ago
        &gt;LLMs be able to coordinate their understanding<p>I think the next time I see &quot;LLMs&quot; and &quot;Understanding&quot; in the same sentence, I am going to lose it....
        • slopinthebag7 hours ago
          Saying an LLM understands something is like saying my biology textbook understands biology. It&#x27;s a complete category error.
        • pixl9718 hours ago
          [flagged]
          • irishcoffee17 hours ago
            I&#x27;ll meet you in the middle: an LLM &quot;understands&quot; words in the same way a toddler understands the phrases they say. &quot;My want cookie!&quot; The toddler has zero comprehension of what any of those words mean, but they know that saying them in that order might result in something desirable.<p>An LLM has zero understanding of &quot;my&quot;, &quot;want&quot;, or &quot;cookie&quot; because an LLM has no id&#x2F;ego, has never felt desire, and has never eaten a cookie.
            • pixl9717 hours ago
              I believe you&#x27;ve made a category error in understanding, um, understanding. You&#x27;ve tied emotion into it. This to me are entirely different concepts where both happen to be wrapped up in meaty flesh that drives us humans. Now, these concepts are very important in sociology and <i>human</i> understanding of how we behave, but they also may have <i>zero</i> importance for the domain that encompases all understanding.<p>HN would commonly recommend reading the book Blindsight here.<p>Moreso, all you&#x27;ve done is recreate the Searle Chinese Room thought experiment which gets bounced around with no means of deciding if it reflects reality or not.
              • irishcoffee15 hours ago
                No I didn’t. You just don’t like the analogy so you rejected it with a lot of empty words.
            • The_Blade15 hours ago
              the shy one of my shelter cats that figured out how to open and close the cabinet below the one with wet food at 3am without meowing has infinite more understanding than any LLM of how the world works
              • CamperBob215 hours ago
                How&#x27;d your cat do at IMO last year?
            • CamperBob217 hours ago
              <i>I&#x27;ll meet you in the middle: an LLM &quot;understands&quot; words in the same way a toddler understands the phrases they say.</i><p>How&#x27;d your toddler do at IMO last year?
              • irishcoffee15 hours ago
                Ask an LLM for the difference between a definite and indefinite article, and then pronouns. Maybe just a whole run down of basic grammar. And then read the comment again.
                • CamperBob210 hours ago
                  Why don&#x27;t you do that, since you&#x27;re the one who has no idea what will happen?
                  • irishcoffee10 hours ago
                    I was referring to you referencing “my toddler” but I suppose if reading is not your forte suggesting you use an LLM isn’t helpful. My mistake.
                    • CamperBob221 minutes ago
                      If that&#x27;s what you consider a reasonable argument for a rationally-held position, then other sites beckon.<p>But then it&#x27;s hardly a rationally-held position, unless you have had no exposure to LLMs in the past year or two.
        • a2dam17 hours ago
          You should be less upset over semantics that everyone else has usefully settled on. LLMs understand things fine.
          • slopinthebag7 hours ago
            Right and my math textbook understands integration.
            • ithkuil5 hours ago
              At least your math textbook was written by somebody who understood integration
      • sokka_h2otribe15 hours ago
        For what it&#x27;s worth, nomadism and agricultural systems are not necessarily more complex - that is, the complexity of a nomadic lifestyle can be quite high. Randomization, varied food sources, hybrid lifestyles, etc.<p>The <i>hierarchy</i> is certainly higher in agriculture societies it seems, but the complexity is up for some debate
      • ButlerianJihad18 hours ago
        &gt; <i>IBM has entered the chat</i><p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;VM_(operating_system)" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;VM_(operating_system)</a>
  • burntcaramel16 minutes ago
    I love the line “This friction synchronizes people.”<p>Part of the understanding that is missed being learned by the team are the failure modes: how can this system fail and how catastrophic is it?<p>Now I fear only the users will learn via data loss, leaks, and hacks.
  • noisy_boy11 hours ago
    One thing that I have noticed somewhat cuts through the haze of prompt-&gt;change-&gt;prompt is to drop into the editor when I notice something that is not exactly bad but isn&#x27;t exactly what I want. It doesn&#x27;t even have to be a big change - infact smaller annoyances are better in this case because they itch more.<p>Don&#x27;t let the agent scratch that itch - it is your hungry inner programmer expressing the need to eat i.e. do it correctly as per your taste. That morsel of work is sustenance.<p>It also activates the thinking gears that only kick in when I am writing the code. In the same process, the code sinks in better and becomes part of the mental model, even if I may not have paid attention to every single line.<p>I have also noticed that the mode switch puts me in a marginally better mood - sort of a recharge for the next bout of prompt-&gt;change-&gt;prompt.
  • apinstein19 hours ago
    &gt; The shared language of a software project is not English or Python but it is the common understanding of what its concepts mean, where the boundaries are, which invariants matter, who owns what, and why the system has the shape it does. This language is rarely written down in one place. It lives partly in documentation and code, but also in code review, conversations, arguments, and the experience of having to explain a change to somebody else.<p>This is so true. I am a big fan of Christopher Alexander’s “Pattern Language” concept, which addresses this exact problem! In fact he recommends developing your own pattern languages for your own domains (which of course led to the famous GoF Design Patterns book).<p>I have been experimenting with a “Pattern Language” skill which instructs the AI to maintain 3 pattern languages for every project. One in the business domain, one in the product domain, and one in the technical domain. It is working really well. It is always super cool to see it reference the pattern languages during planning and curate them during implementation and review.<p>I credit using it with keeping my 100% ai-coded projects well organized, aligned across domains, and easy to work on.
    • ucyo16 hours ago
      Would be interesting to see an example. I heard a couple times that code maturance is very similar on how a city grows naturally, but never seen an example.
    • whattheheckheck18 hours ago
      Do you have any github examples publically available?
  • alwa19 hours ago
    I come back to Babel and the Bruegel image too, although taking from it a little less optimism.<p>I feel these systems rising and sprawling with wee myopic agents developing out their little corners of this unknowably vast whole… a tower with 50 parapets on one side and some wacky cantilevered maiden tower on the other, and a very serviceable adobe roof over some patio for god-knows-why, and thatch over the landing next to it…<p>Some grotesque fatberg of designs that make sense at the level of individual design efforts, but that lack the fractal sort of levels of policy and judgment that unify the overall enterprise.<p>The overall language, as it were.<p>And language takes discipline to establish and maintain through any sufficiently large group of people—witness the company-speak or army-speak of pretty much any successful organization.<p>We <i>feel</i> like we’ve conquered the problem of talking the same language as our “Gastown Mayors” (who in turn are talking the same language as their “polecats” and so on all the way down the chain of golems)… but it’s only when it’s all built that the good Lord will humble us… that we’ll realize the understanding we thought we’d transmitted perfectly from our thrones wasn’t quite so shared as we’d imagined.
  • HiPhish17 hours ago
    &gt; But it’s not the biblical story. At Babel, the loss of common language stops construction whereas in AI-assisted engineering, construction can continue after shared understanding has already collapsed. The lack of an immediate failure is what makes it curious and a bit disorienting. The tower does not fall, and so we do not notice what was lost. It just keeps rising.<p>I don&#x27;t know whether the author thinks this is a good or a bad thing, but in my eyes it&#x27;s clearly a bad thing. Intelligence is knowing that a tomato is a fruit, wisdom is knowing not to put it in a fruit salad. AI is the the ultimate form of intelligence with zero wisdom. Actually, it&#x27;s not even intelligence, it&#x27;s an illusion of intelligence. If there is no human who can understand what the AI is doing it&#x27;s time to stop and accept that we do not have the wisdom to contain what we are building.
    • The_Blade15 hours ago
      &gt; I don&#x27;t know whether the author thinks this is a good or a bad thing, but in my eyes it&#x27;s clearly a bad thing.<p>I like that the author lets the image do the work, rather than preach at me even if I were to agree. History never repeats itself but it always rhymes.
    • jacomoRodriguez4 hours ago
      Maybe a tomato would fit quite well in a fruit salad, and the only reason we do not do it is because of arbitrary learned &quot;it&#x27;s a fruit. But it is treated as vegetable&quot;...
    • jaza11 hours ago
      Yes!<p><a href="https:&#x2F;&#x2F;thebullshitmachines.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;thebullshitmachines.com&#x2F;</a>
    • geraneum16 hours ago
      I have this funny feeling that someone’s probably gonna ask their favorite frontier LLM about the fruit salad thing to refute your point.
    • robocat16 hours ago
      &gt; Intelligence is knowing that a tomato is a fruit<p>Intelligence is learning to avoid using childish cliches, unless your intention was to mislead. Categorisation and understanding dependencies are hard enough problems already.<p>At the supermarket or taxation (Nix v. Hedden) tomatoes are a vegetable.
      • godwinson__4-815 hours ago
        Speaking of &quot;categorisation and understanding dependencies&quot; and &quot;intelligence&quot; and &quot;fruit&quot;:<p>Interestingly, the Bible does not specify what kind of fruit was on the Tree of Knowledge. The association between the forbidden fruit and an apple was a derivative of later translations.<p>Imagine the consternation if the claim had become Adam and Eve ate of the forbidden tomato. Then this incessant controversy regarding the tomato&#x27;s status would take on a biblical dimension... though then perhaps the Mormon claim that the Garden of Eden is to be found in the New World would actually have some credibility. Indeed, answers to some questions are not a matter of intelligence at all. Sometimes it seems to me intelligence is more about knowing what questions to ask in the first place.
        • robocat15 hours ago
          &gt; knowing what questions to ask in the first place<p>That&#x27;s my 2nd hardest skill when trying to use AI. 3rd hardest is better filtering.<p>I keep having flashbacks to learning how to use Google effectively.<p>I&#x27;m an arthiest, but I&#x27;m in a historically christian society so bible stuff comes up and I often delve in.<p>Whenever I do look into the bible, it amazes me just how extremely bullshitty vague the bible actually is. I don&#x27;t understand why people argue about it, or pay attention to past arguments (many famous examples). If I wanted to argue about vague shit I&#x27;d be into philosophy or psychology or I could choose any of the many other branches of argument. Humans are not very logical. At least capitalism has a clearer scorecard.<p>Last nerdsniped look was about Angels due to Scott Alexander:<p><pre><code> (The Bible describes very clearly what angels look like. [snip] This is the highest-grade antimeme I feel comfortable using as an example; if you don’t see the fnords they can’t eat you.) </code></pre> Edit: Which just meta-nerdsniped me finishing up on the beaut Hispanic word &quot;Marianismo&quot;.
          • godwinson__4-814 hours ago
            I am also not religious, but yes the Bible is everywhere. So like you, I acquaint myself for similar reasons.<p>Though I take issue with one statement you made - &quot;If I wanted to argue about vague shit I&#x27;d be into philosophy...&quot; though I do sympathize.<p>Modern analytic philosophy in particular, if it is good, is all about trying to be exceedingly precise, often in domains where objects like the Bible (as you noted) are exceedingly vague. Philosophy has some catching up to do, but ultimately one should not disparage it so cavalierly. After all, the best philosophers were usually also the members of society most against the sort of uncritical religiosity that seems to appeal to so many, as it does now and even more severely through the ages, before the efforts of such thinkers to enlighten their fellow human were realized.<p>If there is a subject that seeks to answer the question of &quot;how to ask questions&quot; it is surely philosophy. The best mathematicians were often well acquainted. In the most famous times of &quot;human flourishing&quot; the philosophers and the mathematicians were one and the same.<p>But yes, there is a lot of bad philosophy. And there is a lot of religion pretending to be science. Sad, but it has always been true.<p><i>Mundus vult decipi, ergo decipiatur</i>
      • travisa11 hours ago
        Apparently, intelligence is to deliberately misunderstand the point being made
    • csomar10 hours ago
      You picked a bad example because this is a thing where LLMs excel. A human doesn&#x27;t know that tomato doesn&#x27;t play well in a fruit salad until he learns it; not that different from LLMs.<p>What LLMs lack, from my experience, is two things: First, a long term memory (even a zoomed out one) and Second, the ability to execute a multi-step task without fizzling out. Upon adversity, LLMs breakdown and start making shit up. The newer models are better (and that&#x27;s the difference between Fable&#x2F;5.6 and GLM 5.2) but still have a very limited ability to execute any tedious planning tasks.
  • zemo18 hours ago
    Anakin: &quot;a developer with an agent will be dramatically more capable of changing a codebase&quot;<p>Padmé: &quot;For the better, right?&quot;<p>Anakin: (gazes in silence)<p>Padmé: &quot;For the better, right?&quot;
    • Cthulhu_7 hours ago
      A fallacy that a lot of people have is that productivity equals progress. Programmers (and their managers) using LOC as a target metric, writers using words&#x2F;chapters written, etc. For some reason this fallacy is reinvented and repeated every so often.
    • kmoser17 hours ago
      <a href="https:&#x2F;&#x2F;www.newyorker.com&#x2F;cartoons&#x2F;daily-cartoon&#x2F;monday-july-13th-ai-fortune-teller" rel="nofollow">https:&#x2F;&#x2F;www.newyorker.com&#x2F;cartoons&#x2F;daily-cartoon&#x2F;monday-july...</a>
    • moffkalast7 hours ago
      Not to worry, we&#x27;re still flying half a project.
  • jeffreyrogers19 hours ago
    My comment is not directly responding to the essay, but it got me thinking about about how agentic programming is much more akin to management than it is to actual programming. Managers generally only have a high level idea of what ICs are working on and often don&#x27;t have the time, bandwidth, and in some cases ability to understand everything the ICs they&#x27;re supervising are doing. As more and more software gets written agentically the role of software engineer becomes less technical and more managerial.
    • Cthulhu_7 hours ago
      While this is true to a point, the other factor is that developers are hired and tested for having certain skills and specializations. While I&#x27;m sure LLMs can be good at things, the question is whether their manager can accurately judge the output. I suppose this problem applies to developers too, but developers have peers and processes.<p>So as someone managing LLMs you need to put those processes in place too. The risk is that one tries to do too much and loses overview &#x2F; insight. Focusing on getting the tower tall instead of sturdy, if you will.
    • segmondy15 hours ago
      We can say that about programmers, most ICs don&#x27;t understand what&#x27;s going on in the layers beneath were they work. Most have no idea what&#x27;s going on with libraries, frameworks, remote APIs, it&#x27;s all abstractions. Most people can&#x27;t tell you how system calls are implemented or function. They don&#x27;t have the time, bandwidth to understand it all, they just operate at their own layer to get the job done.
      • theshrike794 hours ago
        It comes down to trust. I trust that the people who mede the low level stuff I&#x27;m using.<p>I don&#x27;t feel the need to code review every single line of the edior I&#x27;m using. I trust it to work as promised. Same with all other tools.
    • snarf2119 hours ago
      It feels to me like I&#x27;m stuck doing code reviews for a junior dev all day so I use it as little as possible and mostly to look for things I may have missed.
      • gwbas1c19 hours ago
        It&#x27;s great for &quot;mechanical&quot; changes.<p>For example, yesterday I came across some unit tests that didn&#x27;t have error messages in their assertions. Normally, it takes me ~10 minutes to fix a handful of tests in this situation. In this case, I gave a 2-3 sentence prompt, went to the bathroom, and reviewed the result after I washed my hands. Saved me a bunch of time!<p>I encourage you to accept a feeling of &quot;imposter syndrome&quot; when using it, and keep trying new things with it. Don&#x27;t feel like you have to be hands off, except when you&#x27;re confident that you can be. (IE, if you think you need to spend 30+ minutes on mindless refactoring, see if you can explain it to an agent and then look at HN while it runs. You might get a good result, otherwise, it probably was time for a break anyway.)<p>BTW: It&#x27;s important to try different models. The Claude 5.0 models are slow and give me bad results, so I&#x27;m sticking with 4.x for now.
        • slopinthebag7 hours ago
          Yes it&#x27;s so useful for mechanical changes, refactors, and creating similar but slightly different components etc. It turns out that when you feed the word prediction machine a bunch of examples of what you want, and then some text that it can use to predict more text, it can do a good job!<p>The hard part is what text you feed it and how to judge the output.
      • BatFastard17 hours ago
        Use the force Luke!<p>I finally learned to let go of the code. I dont even run my C++ editor anymore.<p>I run frequent code and architectural reviews. Its awesome.
  • fancyfredbot14 hours ago
    I increasingly feel that the reason vibe coding specifically prohibits reading the generated code is that it&#x27;s impossible to forget the horror that lurks in these python files.<p>The code will do what you asked for in a broad sense but wherever choices arise on how to accomplish the goal it&#x27;ll have made those choices incoherently.<p>There&#x27;ll be strange validations applied inconsistently to some user inputs but not others. Data will be repeatedly sorted or converted to lower case for no reason at 3 stages. The column labels are all hard coded strings even though they are the first row of the input CSV. It&#x27;ll create global functions taking data classes half the time and classes the other half.<p>If you look, and if you think you might one day need to update and maintain the code manually, then it&#x27;s very hard to resist fixing this sort of thing, but fixing this sort of thing cancels a lot of the time saving out.
    • strix_varius8 hours ago
      &gt; reason vibe coding specifically prohibits reading the generated code<p>Wait what? Are there rules to vibe coding now? Are we no true Scotsmanning slop now?
      • fancyfredbot7 hours ago
        The term vibe coding actually originated from a tweet from Andrej Karpathy and so there is actually a sort of definition of the term. He said vibe coding is where you &quot;forget the code exists&quot;:<p><a href="https:&#x2F;&#x2F;x.com&#x2F;karpathy&#x2F;status&#x2F;1886192184808149383?lang=en" rel="nofollow">https:&#x2F;&#x2F;x.com&#x2F;karpathy&#x2F;status&#x2F;1886192184808149383?lang=en</a><p>So if you &quot;read the diff&quot; it isn&#x27;t vibe coding, at least not by Karpathy&#x27;s definition.<p>Obviously it&#x27;s not a &quot;rule&quot; and you can still call it vibe coding if you want to. Maybe the meaning of the term has evolved since his tweet anyway.
      • mkehrt7 hours ago
        Well, that&#x27;s literally what &quot;vibe coding means&quot;, no?
  • prymitive20 hours ago
    It used to be that you need a good reason to make huge refactorings, because it’s often so much work. Now agent can rewrite half of your code if your prompt is vague enough and you don’t actual try to review it all. And so the “soul” of a program can change dramatically every single day. It’s both great and very much not so.
    • Xirdus19 hours ago
      The biggest obstacle to huge refactoring has always been minimizing the risk of bugs, not losing any features, and ensuring compatibility with the existing ecosystem. The reason it&#x27;s become easier in the age of AI is because we stopped caring about these things.
      • sarchertech18 hours ago
        Yep. That’s what people are forgetting. If you have an application that many people depend on to do real work, to make money, you won’t survive if you allow AI to constantly make huge changes.<p>Your test suite doesn’t cover all workflows. It doesn’t cover every combination of actions a user can take. So every big AI refactor while change some of those.<p>If this is happening frequently, your software will feel like a janky piece of unusable crap.
      • theshrike794 hours ago
        Actually now we care even more. The reason people didn&#x27;t write extensive test suites was was because it&#x27;s super fucking boring to do so.<p>AIs don&#x27;t care, they&#x27;ll happily write 50 unit tests with slight variations and pair them with a full dockerized end to end test suite.<p>Now we have at least SOME tests. Are they good? Maybe, maybe not - but we have them. If one of them fails later on, we can check if it&#x27;s an actual issue or the test being bad.<p>Which is infinitely better than having no tests because nobody can be arsed to write them or the customer isn&#x27;t paying for the extra hours needed for a proper test suite.
        • zahlman3 hours ago
          Having slop tests instead of no tests is <i>definitely not</i> the same thing as actually caring about avoiding bugs.
    • Cthulhu_7 hours ago
      If the &quot;soul&quot; of a program (which is a vague term but I think I get what you mean) changes daily, that&#x27;s indicative of a lot of churn, and a lot of churn is not a good idea in any project.<p>it&#x27;s like changing how the tower of babel should be built daily. Just because you can doesn&#x27;t mean you should.
      • theshrike794 hours ago
        But if all the tests pass, does it matter what&#x27;s inside?
        • timothycoleman4 hours ago
          Unfortunately the tests can&#x27;t (usually) cover all behaviours.<p>And perhaps more importantly, they don&#x27;t capture more abstract properties of the code like maintainability.<p>AI works best in well maintained code, but unless care is taken, the AI will (today, anyway) make the code less well maintained as it goes.<p>If the AI is allowed to introduce mess into the codebase faster than its ability to deal with the mess increases, the codebase will eventually run into a problem that it&#x27;s hard to recover from.
          • theshrike797 minutes ago
            And that&#x27;s kind of the point, some manual testing is always needed - even when humans write the code.<p>But you can test things and behaviours to a sufficient degree. Nobody really does 100% test coverage on real world code (outside of medical, airplanes and space of course).
        • zahlman3 hours ago
          Yes, of course it does. It&#x27;s strange to me that this can be asked.
  • trjordan19 hours ago
    The agent will always fill in the gaps in your understanding. It&#x27;s not a compiler. It&#x27;s categorically different from any of the other ways we&#x27;ve built software.<p>I&#x27;m not sure reading code is coming back. The ritual of reading code must come back, because that&#x27;s the only way to build products that don&#x27;t collapse under their own incoherence, both technically and visibly.<p>&quot;just ask Claude&quot; is fine, but it&#x27;s not the end state
  • softwaredoug13 hours ago
    One day we&#x27;ll get to the plateau of productivity of this hype cycle and wonder WTF were we thinking.<p>Not that we won&#x27;t have most code written by agents. I truly beleive that to be true. But that we got so far down the &quot;never look at code&quot; rabbit hole that our abstractions will become so divorced from the reality that is the actual.. freaking... code. We will truly have spaghetti code, bloated towers of babble.<p>We&#x27;ll tut-tut these times and think &quot;if you only spent half a day thinking about the big picture, looking at code, dare I say <i>write some code</i> you could have saved the project a whole mess of trouble&quot;.<p>In the meantime we&#x27;re going to be generate 10K in spaghetti what should probably be 500 reasonably understandable LoC.<p>Spending a day reading some code can save you $100s of tokens, and weeks of headaches.
  • bobro14 hours ago
    Really surprised not to see Pope Leo&#x27;s recent encyclical on AI&#x2F;tech mentioned here.<p><a href="https:&#x2F;&#x2F;www.vatican.va&#x2F;content&#x2F;leo-xiv&#x2F;en&#x2F;encyclicals&#x2F;documents&#x2F;20260515-magnifica-humanitas.html" rel="nofollow">https:&#x2F;&#x2F;www.vatican.va&#x2F;content&#x2F;leo-xiv&#x2F;en&#x2F;encyclicals&#x2F;docume...</a>
    • zoobaloo12 hours ago
      I had the same thought, glad someone else noticed this.<p>Comparing AI adoption to the Tower of Babel is a central theme to Magnifica Humanitas, but written by someone with a much deeper understanding of the Biblical narrative.
  • peter_retief7 hours ago
    It is a great analogy.<p>Also quite like Linus Torvalds likening of AI to a compiler.<p>He argues that calling AI the &quot;author&quot; of code is the equivalent of saying a compiler wrote your code.<p>He views AI as an incredibly powerful productivity layer, much like the historic progression from machine code to assemblers, and then to higher-level compilers!
    • timothycoleman4 hours ago
      An important difference is the code precisely expresses many behaviours of the program, and a correct compiler guarantees to respect those behaviours.<p>An AI prompt is not so precise, and an AI offers no such guarantees to respect the behaviours expressed.<p>This is why the primary artifact of the development process, which we review and version control, is still the code, and not the prompt.<p>That said, I do think there&#x27;s a lot of value to be gained by recording and analysing the prompt&#x2F;response loop behind the code that ends up in a codebase
    • permalac6 hours ago
      Shall we be concerned that not many are even able to read assembler code? I&#x27;m not talking about reading machine code, produced by the assembler, but the assembler code itself.<p>Machine code was hard, but one could make it pretty efficient. Not efficiently.<p>Assembler was still pretty performant, for today&#x27;s standard it is tip top.<p>So, moving on 10, 20 years from now, can someone read c++? Even html?
      • timothycoleman3 hours ago
        I think whoever is responsible for the correct operation of a software system will still need to read something that precisely describes the behaviours that they care about.<p>Today, for most devs, thats the code. We usually don&#x27;t need to look at compiled output, because the code is enough. We can&#x27;t just look at the prompts, because they aren&#x27;t precise enough.
  • conartist620 hours ago
    Does it really keep rising? Many of my fondest memories of technology come from times past...
    • CobrastanJorji19 hours ago
      I interpret &quot;keeps rising&quot; negatively. Changes keep getting made, certainly. The AIs will perhaps never fail to fulfill your feature request. But there&#x27;s no overall plan. It&#x27;s just undirected, cancerous growth. It&#x27;s Homer Simpson telling a team of automotive engineers to add feature after feature.
    • GlickWick19 hours ago
      The tower is not about fondness, its about growth
      • conartist619 hours ago
        Is growth enough if technology makes our lives worse? Is a tower the pride of the civilization if a strong gust of wind could bring it down? It is before the gust, when all that matters is that the tower is tall rather than strong. After the gust, things are a bit more nuanced. Fingers are pointed.<p>The tricky part here is that you can&#x27;t tell if a once-topmost part of the tower is sturdy until a great deal more tower is resting on it. Well, now a lot the economy is resting on little other than AI dreams. Your move, rational people.
        • archonis16 hours ago
          Cancer is also growth.
    • a2dam18 hours ago
      This isn&#x27;t really a good way to judge things. In the future, the fondest memories someone else has about technology will be about the present. The past is not better, you&#x27;re just nostalgic for it.
      • jambalaya818 hours ago
        Every time I think the past was better, I think about how terrible ksh scripting was in 1995. And look at how great peoples&#x27; bash scripting is now compared to when we though bash had reached its apex in like 2009.
        • archonis16 hours ago
          Conversely, Rexx scripting on the desktop was glorious in 1995.
          • lstodd14 hours ago
            ARexx on Amiga was way before 1995. And it was glorious.
            • jambalaya811 hours ago
              I used to want an Amiga. they are probably still for sale on ebay. Like in 2010. :(
          • jambalaya811 hours ago
            lol I was actually kidding. The past was way better, almost always (it isn&#x27;t just nostalgia). I think my enjoyment of tech actually used to sort follow a wavelike pattern. Then, it sort of became a straight line a few years before COVID, and I worry that AI is cementing people into an always-forward mindset that removes the enjoyment from just about everything.<p>I mean, yeah, hobby coding is not going away, but the feeling of exploration for me is totally gone. I don&#x27;t dislike tech, I just don&#x27;t see anyone being the way they used to be. People in tech are different and too many people are in tech.<p>Probably only part of the joy will ever be there, now. Which is weird because I did my own thing with computers til college, and don&#x27;t consider myself a super sociable person. I just used to know that it was there, and now it isn&#x27;t.
    • BigTTYGothGF18 hours ago
      &gt; Many of my fondest memories of technology come from times past...<p>Is that because of the technology or because of who you were at the time?
  • phoneafriend14 hours ago
    Is communication at risk? Perhaps more demanding of one&#x27;s attention, more insistent in its attempt at inclusion and contribution?<p>Large Language Models are the most powerful communication tools to have ever existed - probably behind the written and spoken word and marginally behind the internet, maybe more important than phones and texting.<p>With understanding now on tap in this new form of infrastructure, the tower (codebase) and our coordination within it are both very customizable - up, down, sideways - per the will of the team and maintainers.<p>The sample size of your architectural taste, intuition, or expertise at abstraction may never be large enough for a LLM to match it. But if you want it to, it too can keep getting better and closer at this as it seeks alignment with your acceptance.<p>Once your tower is built, what&#x27;s next?
  • cheschire17 hours ago
    Douglas Adams basically predicted Wikipedia on smartphones, and I suspect we are only a few years away from babelfish ear buds.
    • Tagbert17 hours ago
      Apple AirPods and Google buds both can do automatic translation. It&#x27;s still a little too slow and is a little clumsy to use but it&#x27;s getting better fast.
  • cadamsdotcom16 hours ago
    Software construction needs to become like Mission Control - everyone can see everyone else&#x27;s screen. Maybe that&#x27;s a monitor bank for passive monitoring, and letting anyone hop into any tmux and steer any agent - and an agent pool works on tasks from the backlog, rather than engineers being assigned tasks and using agents to do them. It needs to be more like an orchestra, where things are being directed in real time - designating a conductor who steers things. Maybe it&#x27;s like a ship&#x27;s crew, with roles, a chain of command, and lots of overlap. So each day someone gets to be Captain.<p>It was all good when change was slow and needed deep contemplation. Things sped up this year. Chaos is harder to defeat now. It really does need a different paradigm than &quot;people facing into corners each doing today&#x27;s task&quot;.
  • Ozzie_osman9 hours ago
    AI can make individuals 2x or 5x or 10x (?) faster. Lack of trust, alignment, and ownership can make _teams_ 2x or 5x or 10x slower.
  • _pdp_15 hours ago
    Vibe-coded software require a new type of discipline that has not been invented yet.
    • ies77 hours ago
      Vibe-coders from non developer haven&#x27;t&#x2F;won&#x27;t learn that discipline.
  • luciana1u16 hours ago
    the tower keeps rising but the elevator pitch for every new floor is &#x27;it solves the problems created by the floor below it&#x27;
  • sigbottle16 hours ago
    If humans are still around by the end of the century: previously shunned philosophical movements such as pragmatism will actually become mainstream again.<p>The most interesting problems arise when you don&#x27;t try and force one shared standard upon everybody yet still try and play nice.<p>Alternatively, power could concentrate and the winners get to decide what is valuable and not, thus cutting down the space of possible complexity by construction.
  • guessbest18 hours ago
    I don&#x27;t know why people hold on to all this extra software and features when with the tools its easier than ever to strip that out and refactor the end product in to a much more compact deliverable. Maybe once upon a time it was useful to keep legacy parts of the software solution around, but it can be recreated with fresh eyes if needed given the power of the new LLM models. My philosophy is if its not needed, it needs to be removed.
  • thadk17 hours ago
    Three or so years ago, Omar, the creator of DSpy pointed out on Twitter that ~LLMs get better most by better internal collaboration. Wish I could find it.<p>It seems to me that LLMs and particularly chatbots have already allowed for bigger scale collaboration within the LLM companies versus what was possible within the prior cohort of big platform companies.<p>Has the result just been taller towers, or actually a change of what is possible?
  • ddp2617 hours ago
    &gt; I can ask an agent to add OAuth, you can ask one to add caching, and somebody else can ask one to rebuild the database from first principles and make the UI pink. Each change can be reasonable in isolation.<p>But this is just bad vibecoding? This would be bad if humans did it too. With agents or humans, you need to coordinate.
    • theshrike794 hours ago
      Nothing to do with vibes, it&#x27;s just a process issue.<p>Yes, you can &quot;add&quot; anything you want, but if you can get that in to the main branch without a PR, it doesn&#x27;t matter whether it was done by AI or human or both.
  • rtpg10 hours ago
    &gt; But it’s not the biblical story. At Babel, the loss of common language stops construction whereas in AI-assisted engineering, construction can continue after shared understanding has already collapsed. The lack of an immediate failure is what makes it curious and a bit disorienting. The tower does not fall, and so we do not notice what was lost. It just keeps rising.<p>I don&#x27;t think we have hit a long enough timescale to say that we _can_ actually build on top of the AI-assisted engineering work. Tech debt tends to reveal itself later on in the process.<p>Personally I&#x27;ve totally witnessed AI-assisted work that is clearly heading towards a brick wall quite quickly. I think &quot;mixed feelings&quot; is my optimistic view.<p>People really discount how well _well engineered abstractions_ are required for AI tooling to not generate absolute garbage. And if people are relying on AI tooling for the abstractions... I think you&#x27;re really tempting fate in the mid-term.
  • zawaideh17 hours ago
    This is exactly what Marx meant by labourers being alienated from their work because none of them understood anymore how the repetitive task they did factored into the product sold.<p>We are going through a transition from a guild based software production with primitive division of labour to a machinery based one where AI is the steam engine and the job of the engineer is to build the production line, be the mechanic fixing the line, and also the assembly line worker.
  • __0x0119 hours ago
    Agents are very good at making us think the tower is rising, when in fact it is falling beneath our feet.
  • aaron_m0417 hours ago
    This could&#x27;ve been a much better article without the strained Tower of Babel article.
    • aaron_m0414 hours ago
      Err, last word is &quot;analogy&quot;
  • overfeed17 hours ago
    AI replaces a single tower with millions of 5-over-1s[1]. The aggregate height, and speed of construction mind-boggling, but when each building is considered individually, not very impressive.<p>1. Perhaps with a handful of skyscrapers sprinkled in.
    • abraxas16 hours ago
      so the post-AI landscape is software as a shanty town? That&#x27;s not a bad analogy. We won&#x27;t like the looks of it and it will barely function but like real life shanty towns it will function nonetheless.
      • archonis16 hours ago
        Kowloon Walled City.
  • jzer0cool17 hours ago
    &gt; the people is one, ... one language, ..., nothing will be restrained from them<p>Why being one (I see as collaborative) was it not desired? Interpretations? Why is it seemed *more* harmful rather than good?
    • zoobaloo12 hours ago
      The Pope discusses this exact question at length in his recent Encyclical:<p><a href="https:&#x2F;&#x2F;www.vatican.va&#x2F;content&#x2F;leo-xiv&#x2F;en&#x2F;encyclicals&#x2F;documents&#x2F;20260515-magnifica-humanitas.html" rel="nofollow">https:&#x2F;&#x2F;www.vatican.va&#x2F;content&#x2F;leo-xiv&#x2F;en&#x2F;encyclicals&#x2F;docume...</a><p>It&#x27;s odd that TFA doesn&#x27;t acknowledge this.
  • overgard18 hours ago
    I feel like this is missing the ending of &quot;until gravity wins&quot;
    • lstodd14 hours ago
      not gravity, enthropy.
  • dzonga17 hours ago
    at one point - future generations - will look at people who designed unix like tools - tools that do one thing well &amp; compose with other tools as demigods.
    • ares62316 hours ago
      lol no. They&#x27;ll &quot;rediscover&quot; it and claim themselves as demigods.
  • jdw6417 hours ago
    Since GPT 5.2, AI has been writing code much better than I can. In 5.6, it beat Tourlist in competitive coding. After seeing that, I only practice about an hour a day just to keep the feel of coding.<p>Honestly, rather than pointless debates about whether human coding is bad or AI coding is bad, I just think it&#x27;s good to build tools that help me understand the world. I don&#x27;t really care whether it&#x27;s hand-coded or bad code.<p>Because most of my career has been spent as an on-site programmer. Staying at factories, visiting public institutions, deploying services for financial companies. My career is short, but I was lucky enough to work in various places.<p>When AI first came out, I thought I still wrote better code. But after the GPT 5 series, I&#x27;ve completely switched to AI and I&#x27;m now thinking about how to avoid errors and maintain larger codebases.<p>In the world I work in, it&#x27;s common to see functions with 10,000 lines. Many people don&#x27;t consider coupling or cohesion. So these days, instead of focusing on programming syntax, I&#x27;m studying programming theory and thinking about how to handle code when it becomes massive and turns into a black box through vibe coding. And I think this approach is right, because I believe I need to get used to using AI, so I keep coding with it.<p>But due to my cognitive limits, I&#x27;ve restricted myself to C# and TypeScript, which I&#x27;m comfortable with. C++ has too much to memorize and is hard to keep up with. In my region, there are very few C++ jobs, and those that exist are either extremely high-paying or garbage-tier jobs. There&#x27;s nothing in between. So I stick with C# and TypeScript.<p>In practice, when building large programs, I often just set external configuration values I don&#x27;t fully understand and code based on heuristics. I don&#x27;t know the internals of Kafka, RabbitMQ, or PostgreSQL. I just know how to use them. And yet they work fine.<p>I feel the same way about AI code. Even if AI code is messy, if it runs, I use it. When bugs appear or performance is off, I just plug in debuggers or print statements and fix the necessary parts, like working with legacy code. Programming is so complex that if you try to understand everything, you can only design very small parts. Do the people who wrote Linux understand the entire codebase? They trust people they can rely on.<p>I&#x27;ve also reached an internal agreement to trust AI code. To support that, I&#x27;m spending time on creating rules for how to get good code from AI. Things like adding gates or CI, and seeing if that improves the code.<p>The problem is, I know this means no one will want to use other people&#x27;s work or collaborate. The middle layer will disappear. There will be only highly admired projects or personal projects. In the past, even mid-sized projects had humans helping each other. But now mid-sized projects barely need human help. So I think projects will become increasingly polarized and become a zero-sum game.<p>Brooks divided complexity into two types in The Mythical Man-Month: Essential Complexity and Accidental Complexity. Personally, I think AI has greatly reduced Accidental Complexity. However, the essential difficulty, the problem of modeling, still needs to be done by humans. Because AI has no physical embodiment, it&#x27;s inherently hard for it to understand domains the way humans do. Learning about something is different from experiencing it.<p>So I&#x27;ve decided to believe that vibe coding is also a valid approach. Supporters talk about compilers being deterministic, but LLMs are not deterministic. Critics say AI only produces garbage code, but I&#x27;ve seen that with high-quality prompts, the output becomes much better. Math PhDs say AI is good at things like theorem proving, and most of coding is similar to theorem proving.<p>It&#x27;s not about good or bad. I&#x27;ve decided to believe it&#x27;s just another approach. Yes, this is just a religion. My religion.<p>No matter how much people say vibe coding is bad, those who use it well do use it well. And there&#x27;s no reason to criticize those who don&#x27;t use it. I&#x27;ve just decided to treat this programming approach as a religion. Arguing about what&#x27;s right or wrong is pointless anyway. Everyone has different values based on their environment, and convincing others is a waste of time.<p>People in open source communities might feel like AI code is destroying their communities. The code they used to communicate with, and the time they spent on it.<p>But for someone like me, who&#x27;s been in delivery and on-site work, it feels like an escape hatch. It freed me from the hell of dealing with difficult people. So I&#x27;ve decided to rationalize it to myself: AI coding is just one way of doing things<p>I just think new methodologies will emerge. Instead of dividing code by functions or methods, people will think about how to divide things at a larger scale.<p>I&#x27;m just living to adapt to this era. I have nothing to lose anyway. I&#x27;m just waiting for the new era.
    • archonis15 hours ago
      Indeed. This is an awkward era where we&#x27;re using these artificial language tools to target abstractions made for humans to manually write.<p>At some point the path from human language to machine code is not going to require an interstitial step writing to higher level languages as we know them.
    • slopinthebag7 hours ago
      For a lot of people, LLM&#x27;s are actually doing a better job than what they are capable of. I do worry that they are the people first up for replacement, since they don&#x27;t really provide much value that the LLM itself can&#x27;t provide. There isn&#x27;t much point in paying a human to prompt an LLM if you could do it yourself, the value is in someone with the skill and judgement to both prompt it correctly and validate the output - and if the LLM is producing better code than the human is capable of they clearly don&#x27;t have any of that.<p>Personally I really like using LLMs because they have made certain things a lot more productive, but I don&#x27;t feel like my job has really changed at all. I have a new way of generating code, but my value has never been my (abysmal) typing speed or knowledge of algorithms or how fast I can centre a div. It&#x27;s been in the stuff that LLMs still haven&#x27;t pierced, and probably never will.
      • jdw646 hours ago
        I see that point differently.<p>Typing code and using AI well are distinctly different things. I&#x27;ve dealt with Chinese subcontracting managers before. But managing people is different from doing code reviews and writing code. I think these two are fundamentally similar but different. Of course, it&#x27;s undeniable that you need a certain level of skill to verify the output, which is why I practice typing for an hour every day. But that aside, while it&#x27;s true that good coders may have a head start in using AI well, I don&#x27;t think they&#x27;re essentially the same thing.<p>The reason I say this is simple: AI has already learned more than I have in many areas. Good code often involves a lot of error handling. But humans can&#x27;t cover all of those edge cases. Even something like UAF (Use-After-Free) can happen depending on timing, and pointers may not release properly. But AI catches these things surprisingly well.<p>So I think this way: on average, it may be true that people with higher coding skills use AI better, but I think it&#x27;s hard to say that means they&#x27;re better at using AI. People who are good at using AI are usually those who break functions down into more readable pieces and set boundaries better, rather than those who are good at LeetCode-style problems. That&#x27;s similar to being a good coder, but it&#x27;s a slightly different skill set.<p>I respect your opinion, but I think an additional layer will emerge.
  • beardyw19 hours ago
    No, the story of the tower of Babel was:<p>&quot;we can, so we should&quot;.<p>It ended badly.
  • jadbox17 hours ago
    This reminds me of Ted Chiang&#x27;s &quot;Tower of Babylon&quot;. You really should read it (and all of TC&#x27;s works)!
  • fantasizr19 hours ago
    ai eliminating friction is eliminating learning and understanding. this is felt with more severe consequences in K-12 writing and music.
  • Matumio6 hours ago
    Speaking of tower analogies, I fear it may play out like in this comic: <a href="https:&#x2F;&#x2F;www.smbc-comics.com&#x2F;comic&#x2F;the-village-and-the-tower" rel="nofollow">https:&#x2F;&#x2F;www.smbc-comics.com&#x2F;comic&#x2F;the-village-and-the-tower</a>
  • alkyon15 hours ago
    Ultimately, AI models will need to ingest the slop ziggurat they created. This means, other things being equal, that it won&#x27;t be so easy as it is now to achieve incremental gains from the sheer fact of gobbling up more code.
  • jagged-chisel19 hours ago
    ... and narrowing.<p>Where the &quot;tower&quot; was once a company (or team?) of human devs, it can now be a single dev and their agents.<p>The right engineer can likely replace non-technical co-founders with a couple LLMs. Geez, I can&#x27;t wait to write that article...
  • lowbloodsugar13 hours ago
    Domain Driven Design
  • 4b11b416 hours ago
    Really liked the framing on this
  • m3kw919 hours ago
    You use a shared agents.md and an auto updated architecture doc but that is the one that needs to be heavily scrutinized and everyone gets a turn to review it.
    • jagenabler219 hours ago
      this doesn&#x27;t work in any truly complex system. If the entire organization&#x27;s shared understanding could be captured in a few documents, software engineering would&#x27;ve been a solved problem ages ago.
  • iririririr10 hours ago
    so, is it an analogy for a better tower or a better communication breakdown?
  • Invictus012 hours ago
    this is just a software engineer&#x27;s ego trying to protect itself in flowery language
  • mrdomino-18 hours ago
    [dead]