I had some cleaning up to do this morning so I tuned in to the Oxide and Friends podcast. I chose the episode "Are LLMs Insufficiently Lazy". I haven't finished the episode (or my cleaning) because it led to a post by Bryan Cantrill called "The peril of laziness lost" (quick and worth a read).
One sentence that really struck a chord with me in that post is: "Left unchecked, LLMs will make systems larger, not better". Oh how true that is! I've been saying the past few months that in the best case LLMs keep a code base's health the same. In the normal case they make it worse. A larger system is often worse than a smaller system. Certainly worse than a smaller system with the same feature set.
I've been searching for what to call the code LLMs generate. Recently I've used "industrial programming". While writing this post I thought of calling it the "supersize era". I think I've settled on "McMansion Programs". That sums up my feelings as simply as possible. If I were an LLM I'd use all of these metaphors interchangeably throughout this post and probably dash in a few more along the way;)
We seem to be fully immersed in a moment in software where we need more "stuff". Burn more tokens. Write more lines of code. Ship more features. IPO for a trillion dollars. Who cares if it's better.
What we seem to be lacking in all of this is taste. A quip I learned from my older sister which I've repeated many times is "money can't buy taste". McMansions are the USA's greatest call to this saying. Humongous homes. Sloppily built. Filled with junk. Expensive to maintain. They give off the appearance of great wealth. But, take another look or use one of the flimsy door knobs in the home and the shine will be gone.
The programs LLMs build tend to fall in this style. We use a lot of tokens and write a lot of code. It doesn't mean it is any good. The abstractions get mixed up just like the mish-mash of architectural styles in McMansions. Likewise, we create humungous features but aren't exactly sure who the user is. I washed windows in high school and I worked in many McMansions where I was sure the last person to be in the ornate sitting room I was in was the previous window washer. In addition, these McMansion Programs "safely" handle every little error by logging and continuing on as if nothing is wrong. Akin to the sterile miles of grass where hardly a bee can survive in McMansion neighborhoods. These programs have a lot to them but very little taste.
The best antidote I've seen is to be more careful in the review phase. Take another pass at honing your code. The first pass we used to make as humans wasn't good enough. Likewise, the first pass the LLM makes isn't good enough. In 1983 Stephen Johnson and Brian Kernighan said "first make it work, then make it right, and, finally, make it fast". In the same year Butler Lampson said "Plan to throw one away". With LLMs we gained a new tool. A very powerful and sharp tool. But, just a new tool. Old wisdom still applies. Making a version and throwing it away is now easier, and it is just as important as ever. I want to caveat that with not being stuck in a "rapid prototyping" phase forever. Eventually a version needs to be committed to and then the hard work of refining it begins.
Extending the McMansion metaphor a little further: A fun overlap between McMansion Programs and McMansion Homes is that they were both aided by a new technology. In the case of McMansions Homes it was the truss connector plate. If you're curious about that sort of thing this video goes into more details on it and the industrialization of home building. A case of history rhyming. I hope our programs aren't doomed to the same soulless fate as many American McMansion suburbs.