I think the biggest issue with LLM generated code is that it's happy to just keep plugging away making a bigger and bigger rat's nest.
I spend a lot of time reviewing code and the LLM code works for what the implementer wanted and from the outside things function the way people expected, but inside the code is becoming more and more knotted and incomprehensible.
Now maybe you could point claude at it and say "make the code easy for people to understand too" and no one is bothering to do that. Maybe it's a skill issue and the people around me should be prompting better or revising better.
The only thing I know is that I'm seeing it happen. Code quality is going down, comprehension is not just missing because people didn't author the code, it's getting worse because even when they go to read the code it's become too complex and weird. So now they have to rely on LLMs to tell them what the code they are responsible for is doing and how.
The thing that remains to be seen is if comprehensibility will matter. I can't look at the assembly the compiler outputs and comprehend it and it doesn't bother me. LLM advocates argue the same will become true for code, it won't matter if you understand the code because it only matters that the LLM can comprehend it and keep making it do the things you want.
I'm less inclined to believe that being able to reason about your codebase and make changes to it is something I really want to put into a bunch of hyperscaler company hands. Enshittification tells me that this honey moon of affordable intelligence will reach an end at some point and a lot of companies are going to clamp down on more expensive tokens and a lot of engineers are going to find that they have both let their code comprehension skills atrophy and aren't permitted to take every little question and change to the LLM because it's too costly.
They will crack open the codebase, every changeset with a full comprehensive page of LLM-speak explaining how it addresses the problem, every changeset in isolation reasonable enough, and an end state that is something only an LLM can love.
Comments
I think the biggest issue with LLM generated code is that it's happy to just keep plugging away making a bigger and bigger rat's nest.
I spend a lot of time reviewing code and the LLM code works for what the implementer wanted and from the outside things function the way people expected, but inside the code is becoming more and more knotted and incomprehensible.
Now maybe you could point claude at it and say "make the code easy for people to understand too" and no one is bothering to do that. Maybe it's a skill issue and the people around me should be prompting better or revising better.
The only thing I know is that I'm seeing it happen. Code quality is going down, comprehension is not just missing because people didn't author the code, it's getting worse because even when they go to read the code it's become too complex and weird. So now they have to rely on LLMs to tell them what the code they are responsible for is doing and how.
The thing that remains to be seen is if comprehensibility will matter. I can't look at the assembly the compiler outputs and comprehend it and it doesn't bother me. LLM advocates argue the same will become true for code, it won't matter if you understand the code because it only matters that the LLM can comprehend it and keep making it do the things you want.
I'm less inclined to believe that being able to reason about your codebase and make changes to it is something I really want to put into a bunch of hyperscaler company hands. Enshittification tells me that this honey moon of affordable intelligence will reach an end at some point and a lot of companies are going to clamp down on more expensive tokens and a lot of engineers are going to find that they have both let their code comprehension skills atrophy and aren't permitted to take every little question and change to the LLM because it's too costly.
They will crack open the codebase, every changeset with a full comprehensive page of LLM-speak explaining how it addresses the problem, every changeset in isolation reasonable enough, and an end state that is something only an LLM can love.