Slop, For Whom
A developer, under deadline, opens a chat window, asks an AI to write a function, receives a function, reads it, and posts the screenshot. The caption is some version of look at this. The unstated question is isn't this slop?
The function works. The function passes the test the developer wrote for it. The function is, by every measurable property of the running system, indistinguishable from a function the developer would have written, given three more hours.
The function is still slop. This is the discourse.
The argument against AI-generated code is almost always made in the form of a screenshot. A judgment, posted, becomes a pitch. What the pitch rarely shows is for whom the code is slop.
This is the older question. It predates AI. It predates the screenshot.
The "for whom" problem
"Craft" and "slop" are the current vocabulary. A decade ago it was "clean" and "smelly." The vocabulary changes. The underlying move does not. For many decades — roughly the entire history of commercial software — a developer would tell a stakeholder (an architect, a product manager, a boss) that a piece of code was better. Or whatever the word was that would elicit the desired outcome. The correct response — though rarely the offered one — was: better for whom?
Clean for the developer to write is not clean for the next developer to read. Easier to read is not easier to deploy. Simpler to deploy is not simpler to operate at three in the morning on a Tuesday when it has begun to fail in an interesting way. Cheaper to operate is not cheaper to retire when the business has moved on.
The "craft / slop" axis is a one-dimensional projection of a problem with more dimensions than the few we just listed. We did not list the rest. We have reports to file. The projection is convenient. The projection is also the entire reason the screenshot is legible as an argument.
The throughput correction
The argument further assumes the unit of analysis is the artifact. A function. A file. A pull request. Held up against some Platonic version of the same artifact, written more slowly, by a human.
This is not the unit of analysis the developer actually operates against. The actual unit is acceptable code per unit of time and money spent. On that axis, the AI-generated function — even when it is slop, even when the developer rolls his eyes at it — represents a volume of output produced so rapidly that the developer can afford to say "that's slop, try again" and receive, in seconds, a cleaner version. And then a cleaner one. And then a version that is, by the developer's standards, fine.
Whether this is craft or slop depends on what was being measured. The screenshot does not tell you. The screenshot was never going to tell you.
The tail behavior
There is also the matter of what gets handled.
A human developer, writing the function from scratch, makes a calculation. The calculation is roughly: this path is unlikely; I will throw an error and move on. The expected failure rate is, perhaps, one in a thousand. The developer accepts this. The developer has other functions to write.
An AI, asked to cover the edge cases, will. It will write Plan B. It will write Plan C. It will write Plan D, which the developer would not have written under any economic conditions short of a regulated industry and an audit. The expected failure rate becomes one in a million. Whether this represents craft depends, again, on for whom.
The function is now longer. It is harder to read. It is more defensive under conditions that statistically do not occur. It is, by some definitions, smelly. Overcomplicated. Unnecessary. Gold-plated.
It is also the function that runs at three in the morning on a Tuesday without paging anyone.
The forecast
We expect the "AI writes slop" argument to persist for as long as the screenshot remains the medium of the argument. We expect the screenshot to remain the medium of the argument indefinitely. We do not expect anyone to clarify, in the caption, for whom.
That clarification is the entire question. Its absence is the entire post.
— Filed by The Receipts Department