Vibe code is legacy code
It's a shame that the web moves 100 miles a minute. Steve Krouses's Vibe code is legacy code made quite the splash in the middle of the summer, but as it happens, I think it's one of those "yeah duh" posts that continues to look even more intelligent as time goes on.
We already have a phrase for code that nobody understands: legacy code.
Legacy code is universally despised, and for good reason. But why? You have the code, right? Can't you figure it out from there?
Wrong. Code that nobody understands is tech debt. It takes a lot of time to understand unfamiliar code enough to debug it, let alone introduce new features without also introducing bugs.
Programming is fundamentally theory building, not producing lines of code. We know this. This is why we make fun of business people who try to measure developer productivity in lines of code.
When you vibe code, you are incurring tech debt as fast as the LLM can spit it out. Which is why vibe coding is perfect for prototypes and throwaway projects: It's only legacy code if you have to maintain it!
I'm not 100% certain which order the ingredients were added to my soup, but I know this post put Programming as Theory Building by Peter Naur in the pot, right around the same time the Mythical Man-Month splashed it's way in, too. I have many thoughts, and No More Hog Butchering is the first ladel of piping hot goodness.