I completely disagree. I am completely confident that an Opus 5.5 will code circles around the average developer.
I’ve also had to rewrite AI slop, but I did it with AI. Came out great. Turns out, knowing how to use a tool makes a real difference. It’s like saying knifes are shit at cutting because a lot of dumb fucks keep holding it the wrong way.
20 years of experience, for what it’s worth, and a vehemently disagree. But to extend an olive branch, I think a big reason for the seemingly polar opposite reception of LLM coding online is the context.
If you give an LLM all the tools it needs to write, research and verify it’s code, to test the result (for example, in a browser), give it access to all the context it needs, like documentation, use it for code that is new, but not largely novel (CRUD business app vs. invent a new algorithm) and a competent person uses it, it’s genuinely great. Great in a way no sane person could deny.
Inversely, if you’re working in a shitty environment already, without documentation, where everything exists as implicit knowledge in peoples heads, where you can’t test and develop freely, where you’re forced to use shit LLMs or “hardened” aka shitty tools, for a extremely uncommon domain, you might have worse experiences.
This is really more a case of possibility #2. Specifically, why are you rolling your own in the first place? The whole reason the output of the AI is “probably flawless”, is because this operation already has a million implementations. What’s the value in conjuring up another one and adding it to the code that needs to be maintained? Yeah, binary trees aren’t terribly complicated, but neither is struct Vector3 { floatx, y, z; }; or any of its operations, until you realise you’ll be running those operations an awfully lot, so it would be better if it had the right alignment and SIMD instructions were used in its operations, and of course, if you have Vector3 you’ll probably also need a Matrix4x3 and a Quaternion etc., so in the end it’s just better to use an existing solution.
This is what I mean with turning good devs into mediocre ones: the worst solution becomes the easiest solution, so that’s what people will lean towards.
Of course, there can also be situations like you have a very specific use-case and using something off-the-shelf would be sub-optimal, or you’re working with old code and making their own was the decision the previous person or your dumbass past-self made, so that’s just what you have to work with. But the AI is going to struggle more with those cases too.
Lastly, I also mentioned “energy”. If you’re trying to put in words things that aren’t easily conveyed in English (or any other natural language) all the time, you burn through your cognitive endurance like crazy. This is why you don’t want to be in a highly technical meeting in the morning, so being in one all day with a moron you can’t really come to common understanding with (beyond the size of its context window) is even worse.
Human slop code existed way before we had auto-complete in our IDEs, way before Copilot start writing small functions and thus bad code is not because of LLM. AI slop is no different than Human slop, it uses a shit ton of ressource to generate it and is faster at getting a working output but bad codebase is not new.
It’s not great at coding. I’m on about my fifth “rewrite large system that’s a pile of AI slop” job this year, trust me.
I completely disagree. I am completely confident that an Opus 5.5 will code circles around the average developer. I’ve also had to rewrite AI slop, but I did it with AI. Came out great. Turns out, knowing how to use a tool makes a real difference. It’s like saying knifes are shit at cutting because a lot of dumb fucks keep holding it the wrong way.
Shitty devs will write shitty code using AI
Good devs will write good code faster with AI
I have for sure seen far worse hand written code than AI would produce
If it takes less time and energy to describe what you want in natural language than to just write the code, there are two possibilities:
In the end, only shitty devs benefit, while being prevented from becoming good devs, while good devs turn into mediocre devs.
20 years of experience, for what it’s worth, and a vehemently disagree. But to extend an olive branch, I think a big reason for the seemingly polar opposite reception of LLM coding online is the context.
If you give an LLM all the tools it needs to write, research and verify it’s code, to test the result (for example, in a browser), give it access to all the context it needs, like documentation, use it for code that is new, but not largely novel (CRUD business app vs. invent a new algorithm) and a competent person uses it, it’s genuinely great. Great in a way no sane person could deny.
Inversely, if you’re working in a shitty environment already, without documentation, where everything exists as implicit knowledge in peoples heads, where you can’t test and develop freely, where you’re forced to use shit LLMs or “hardened” aka shitty tools, for a extremely uncommon domain, you might have worse experiences.
“I want a method that inverts a binary tree”
Can you code that quicker than you can describe it in natural language?
No obviously not, AI could give that to you in ~30 seconds.
And it would probably be flawless, but you can review it yourself to double check
This is really more a case of possibility #2. Specifically, why are you rolling your own in the first place? The whole reason the output of the AI is “probably flawless”, is because this operation already has a million implementations. What’s the value in conjuring up another one and adding it to the code that needs to be maintained? Yeah, binary trees aren’t terribly complicated, but neither is
struct Vector3 { float x, y, z; };or any of its operations, until you realise you’ll be running those operations an awfully lot, so it would be better if it had the right alignment and SIMD instructions were used in its operations, and of course, if you haveVector3you’ll probably also need aMatrix4x3and aQuaternionetc., so in the end it’s just better to use an existing solution.This is what I mean with turning good devs into mediocre ones: the worst solution becomes the easiest solution, so that’s what people will lean towards.
Of course, there can also be situations like you have a very specific use-case and using something off-the-shelf would be sub-optimal, or you’re working with old code and making their own was the decision the previous person or your dumbass past-self made, so that’s just what you have to work with. But the AI is going to struggle more with those cases too.
Lastly, I also mentioned “energy”. If you’re trying to put in words things that aren’t easily conveyed in English (or any other natural language) all the time, you burn through your cognitive endurance like crazy. This is why you don’t want to be in a highly technical meeting in the morning, so being in one all day with a moron you can’t really come to common understanding with (beyond the size of its context window) is even worse.
Human slop code existed way before we had auto-complete in our IDEs, way before Copilot start writing small functions and thus bad code is not because of LLM. AI slop is no different than Human slop, it uses a shit ton of ressource to generate it and is faster at getting a working output but bad codebase is not new.