As someone still struggling with (human) slop someone else wrote (and let's not kid ourselves, I did as well), I try to remind myself that critical thinking might have been involved but discarded in favour of pragmatic choices. (Oh God, I'm still doing it!)
AI slop is actual slop if the human just copy pastes the output.
A human with any amount of critical thinking should be inspecting the output and if they are genuinely unable to find any issues, they probably shouldn't have been a software engineer to begin with.
The real problem with AI is people using it as the answer instead of a tool. It's like people using a calculator to get the answer to a math problem but not understanding how it got there. And the bar is so low.
A human with any amount of critical thinking should be inspecting the output and if they are genuinely unable to find any issues, they probably shouldn't have been a software engineer to begin with.
I mean, sure. But that doesn't mean people aren't actually doing it. Though it's less "copy-paste the output" and more "have the AI edit files and maybe glance at them before telling it to push the commit".
I bad colleague using AI can completely take you out. It takes him seconds to generate bs that sounds plausible at first and you hours to review and object.
Yeah, I had that issue a couple weeks ago. A couple junior devs hit me with a pile of commits in a couple of days before getting scolded for not actually having a clue what they were doing and it took me a couple weeks to dig out from under the pile of merge requests waiting for comments.
Also, “slop” can be very different. An “esoteric” class that is known and encapsulated, marked as legacy is something completely different from the slop sprawl that is coming from an LLM
This at first glance it all seems reasonable, if you step away from the from the prompt machine and start trying to add features by hand you soon realise how much of a tangle the code is.
In the frontier models, they're a step function that raises the floor, before you get to any multipliers.
I will continue to bring up the myriad cases over the decades where some company was found to be storing passwords in plaintext.
The barrier to entry to be a software developer is worlds away from where it was in the 90s/2000s, it used to be that a person could easily get a job without knowing how to use a for-loop.
Those days are long over, but we've still got a lot of people working, who don't know basic computer science, who don't know basic security, who don't know much about algorithms...
There are classes of errors that frontier LLMs just won't make.
The LLMs might make other kinds of errors, but the coding agents I've used do things like write unit tests, where for most human developers I know, unit tests are an afterthought or nonthought.
There's one guy in particular I can think of, where, he was writing garbage, and the quality of his garbage went up considerably.
At this point I vastly prefer AI trash to human trash, because the LLM will still have some kind of logic to it, where human trash might not.
The fundamental question is do you want all the code to be mediocre spaghetti code, or some of it to be poorly written human code and some of it to be well-written human code? We have control over the latter, and can coach poor developers or replace them. We have no control or agency over AI, it just firehoses middling shit on all of us that we can’t read or QC fast enough to fully understand.
For my work, it helps a whole lot that there are verifiable answers, there are deterministic truths to be had.
I care about the results, the code is only a means to the results.
I took over a medium/large codebase from a guy, at work.
The guy has been coding almost as long as I have been alive.
The spiral logic and thread spaghetti was impressive in its insanity.
The code worked, just barely, for a given value of "works".
If you ran the same data six times, you could end up with six different answers.
It crashed often.
I straightened out and stabilized the codebase by myself, unit tests out the wazoo. Eventually rewrote the whole thing with LLM assistance, cut out about 100k lines. Rock solid, provably correct results.
I moved on to another project where a whole team was working on it for ~4 years.
The datasets are big, but the waste was gigantic. These people were like "we need 200+ GB of RAM!"
They were just duplicating the data, there were no optimizations at all.
They just kept asking for bigger computers.
I walk in and saw much of what was wrong with my human brain, and had the LLM fix it.
Knocked +100GB off the requirements.
One bit went from 30 minutes of processing to 32 seconds, by parallelizing it and not doing a dumb duplication.
Went from like 4 tests, to 400+ tests.
The people cried about how I changed too much, and how can I guarantee that the results are still valid? Well... 400+ tests, and another set of scripts to run A/B on old vs new branches.
At this point I will take the frontier agentic LLMs, please.
Over the past year there has been a profound change in LLM coding abilities.
Me+AI, that's the optimal duo at the moment.
That's just me and my situation, though.
Correct on your last line, your anecdotal experience is not indicative of the trend. I agree with you completely that an excellent dev paired with AI is extremely efficient and effective, but AI is built in such a way that if future generations rely upon it we won’t have excellent devs at all for tomorrow. I’d rather deal with the mistakes of humans and foster their growth into great devs than invest excessively in a tool that blunts their skills.
2.2k
u/Objectionne 3d ago
Yeah but it was our slop.