It’s Not the Chisel
After 40 years of writing code by hand, I looked down on vibe coding. Then I tried it. This is a look at what people mean by “AI slop,” which complaints hold up, what AI means for developers who are still learning, and why slop was never about how the code got written. An LLM is a chisel: in the right hands it makes something worth keeping, and in mine, a lump. AI didn’t create slop. It just made it cheaper to produce.
This is something I've thought about a lot lately. "AI slop" gets thrown around liberally these days, but who decides what counts as slop?
I've been writing software in one form or another for over 40 years. In the end, programming has always been about solving a problem: given a specific input, process the data and produce the correct output. Like a lot of people, I didn't understand the appeal when "vibe coding" took off. I looked down my nose at anyone doing it, because they weren't writing the code by hand.
What makes it slop?
Ask around and the complaints sort into a few piles.
The output. It's generic. Everything drifts toward the average, so prose sounds the same, images share a look, and code follows the most common pattern whether it fits or not. It's also confidently wrong. It invents APIs and cites papers that don't exist, and the polish makes the mistakes harder to spot. When it isn't wrong, it's padded: extra explanation, defensive code nobody asked for, filler meant to look thorough.
The process. Nobody thought it through, so there's no judgment in it, only the appearance of some. In code, that means the person who shipped it can't debug it, extend it, or defend it. There's also the worry that juniors skip the struggle where the actual learning happens.
The part people don't say out loud. Some of it is gatekeeping. Craft takes years to earn, and watching someone skip that stings. I know, because that was my reaction. Some of it is about the training data being taken without consent, and some is plain fear of being replaced.
Some of these hold up. The output is generic if you let it generate content wholesale.
I'm not the person you put on a podium, and I've never wanted to be. Like a lot of the people I've worked with, I'm the one behind the scenes making sure everything runs. Nobody has ever accused me of being too talkative. I'm reserved, but I listen to everything.
That carries over to how I write. I can write code fluently, but it doesn't translate to the written word. Probably because most function names are short. I write everything by hand, then let the LLM clean it up, check the grammar, and tell me when two thoughts don't connect. Does that still qualify as AI slop?
On coding
This is where things get contentious. It isn't hard to find people who are flat out against anything AI-related. Reddit's r/opensource just banned all AI-assisted and AI-related projects. The mods' reasoning:
AI, as it exists today, is incongruent to this Open Source community.
Their community, their rules. Plenty of other subreddits aren't far behind. I'll admit the parade of AI-built clone apps, each wanting $9.99 a month, gets old. The market tends to sort that out on its own, though. An app is worth something if it solves a problem well enough that people will pay for it. Most of the clones won't, and the market will tell them.
Adam Cameron raised a question I've been chewing on: what happens to career progression? Leaning on AI clears a lot of roadblocks. After a few decades of this, I'm happy to let it handle the small details while I focus on the big picture. I've already paid for those details, and I don't need to keep paying.
If you're just learning, though, those roadblocks are the lessons. The trial and error, the bug you chase for three days that turns out to be a missing semicolon. That's where you learn how things actually work. Skip it, and you end up with a working app and no idea why it works.
That doesn't mean avoiding AI. It means using it as a tutor instead of a ghostwriter. I can't count how many times I've asked "explain this logic to me" or "I need to change x in this method. What downstream impacts haven't I considered?"
So, who decides?
I said at the start that I looked down my nose at vibe coding. Then I tried it.
This blog runs on boxlang-express, a framework I built to bring Express.js-style ergonomics to BoxLang. AI wrote a good chunk of it. So did my feed reader, Feedhouse.app, which exists because I never got over Google Reader. Neither one is slop. I designed them, made the calls, and reviewed what went in. The AI did the typing. I did the deciding.
Think of it like a chisel. Hand one to a sculptor and you get something worth putting in a museum. Hand the same chisel to me and you get a lump, possibly with the chisel still stuck in it. The chisel didn't let either of us down. An LLM works the same way: it amplifies whatever the person holding it brings. Bring decades of knowing what good code looks like, and it gets you there faster. Bring nothing, and it gets you a lump faster.
What I learned is that slop was never about how the code got written. I've been cleaning up hand-written slop for 40 years. Some of it was mine. Bad code doesn't need an LLM; it just needs someone who stopped caring whether it was right.
The standard hasn't changed. Given a specific input, does it produce the correct output? Can someone maintain it? Does the person who shipped it understand what they shipped? If the answer is yes, I don't much care whether it was typed, generated, or dictated to a very patient parrot. If the answer is no, it's slop, and it would have been slop in 1995 too.
AI didn't create slop. It just made it cheaper to produce. That makes judgment worth more, not less.
No comments yet — be the first.