I’m not sure I agree with this or maybe I don’t understand. In my experience, the over engineered code LLMs create have more big problems. Rewriting vast parts of code when I have an outage or need a new feature means the code evolves far faster than my understanding. That gets more and more dangerous. Or maybe I’m not smart enough to follow the new pace?
LLM's are good at some types of reviews and awful at others. They generally tend to overcomplicate things and miss opportunities to simplify. They pretty much have to take pre-existing code and tests as gospel and cannot distinguish which is buggy, incomplete, unimportant or important. They have no knowledge of unwritten business requirements, customer preferences, et cetera so high level review is always necessary.
I also like having long, pointed conversations with LLMs as I review code. Then when I'm done, it's different code, and it has all of my blind spots and knowledge gaps, so I cannot effectively review it anymore.
It's like turning a code review that requests you, into a code review that requests someone else. And it tramples on the original author quite a bit too. It's hard only having the ability to add incremental value to large amounts of code, instead of large amounts of value to incremental code.
If your plan is to not review and just have the LLM rewrite if it doesn’t work, it doesn’t sound like the rewrite is gonna be any better.
Failures in production remain expensive.
Writing blog posts has become cheap, making them sound human has become hard.
The simple sentences LLM keep generating break my brain, it's like 95% of writing is now 3rd grade level.
Compare that to e.g. Martin Amis: https://en.wikiquote.org/wiki/Martin_Amis
Martin Amis level prose is neither possible nor desirable for a technical blog post.
Why?
ai can do some of the reviewing, checking calling and called arguments, even things like crufty shell scripts.
but the higher-level "should you do this?" or "check your design" - could AI do that stuff?
> ai can do some of the reviewing
No way this can backfire.
> checking calling and called arguments
Like a static language compiler already does?
IMO it can, about as well as an entry/mid level dev
I think the question is now "should you care?" And it seems the magnificent, incorruptible thought leaders of our time are all converging on "No"
I’m not sure I agree with this or maybe I don’t understand. In my experience, the over engineered code LLMs create have more big problems. Rewriting vast parts of code when I have an outage or need a new feature means the code evolves far faster than my understanding. That gets more and more dangerous. Or maybe I’m not smart enough to follow the new pace?
AFAICT, the author is talking about rewriting code during a review as part of the review process.
quote: "If I identify code that’s more complex than it needs to be, in my own work or in someone else’s PR"
If so, that makes a lot of sense to me. The best time to rewrite code is before it hits production.
Why is reviewing hard? I use LLMs for reviewing. It is dogmatic to review every line written by an LLM.
LLM's are good at some types of reviews and awful at others. They generally tend to overcomplicate things and miss opportunities to simplify. They pretty much have to take pre-existing code and tests as gospel and cannot distinguish which is buggy, incomplete, unimportant or important. They have no knowledge of unwritten business requirements, customer preferences, et cetera so high level review is always necessary.
I also like having long, pointed conversations with LLMs as I review code. Then when I'm done, it's different code, and it has all of my blind spots and knowledge gaps, so I cannot effectively review it anymore.
It's like turning a code review that requests you, into a code review that requests someone else. And it tramples on the original author quite a bit too. It's hard only having the ability to add incremental value to large amounts of code, instead of large amounts of value to incremental code.
always true to your name
I'm confused - are you purposefully pretending that the author isn't talking about human review?
What kind of systems do you work on? Does it have production traffic? Is there a cost to downtime?
you arnt reviewing. youre playing loophole semantics.