I hear this meme of "Opus writes better code than me" repeated a lot. I am absolutely baffled by it.
I use all the latest and greatest Anthropic (and OpenAI) models, and interact with them probably on average 10h a day. I experiment with changing effort levels, with different ways of prompting and guardrailing, etc. Giving more instructions, giving less instructions. Doing heavy planning, just giving vague ideas.
I've done everything from fully vibe coding massive projects, to using LLMs regularly in my day job and reviewing every single line they produce.
Unless you are *really* on top of your agents, they inevitably end up writing an absolute mess. Not only does the code become impossible for humans to reason about very quickly, it actually becomes difficult for agents to reason about it. It turns into a total garbage in = garbage out situation.
Have you honestly reviewed a vibe coded project after it has been going for a while, even one written by current SOTA models, and thought "yep, this is great code"?
> Unless you are really on top of your agents, they inevitably end up writing an absolute mess.
It's like the magic broomsticks from Fantasia's Sorceror's Apprentice sequence. Great at hauling buckets but if you don't keep a close eye on them they will fill your workshop with water.
> "Opus writes better code than me"
Probably true for some definitions of me. :)
> Not only does the code become impossible for humans to reason about very quickly, it actually becomes difficult for agents to reason about it.
Story of many enterprise applications built only by humans. There is a good reason that frequently devs either refactor their codebase or do a complete rewrite.
Yes. A project I am working on now the code quality it is producing I would put at less than ten people I have ever met could do, and they would struggle with the OCD tedium induced.
There is clearly a trick to coaxing these results, and a major factor is to treat the model like it is something you fully expect to get it right because it knows how to do it, not you micromanaging it into compliance.
> they inevitably end up writing an absolute mess
I don't think this is inevitable. How do you define an absolute mess? Whatever you come up with, give the agent instructions to not do that. Then audit the code to make sure it's not happening.
> Not only does the code become impossible for humans to reason about very quickly,
What makes it actually impossible? It's using logic that is beyond human comprehension? It's using the programming language in a clever way no human would expect? Have you tried instructing it to code in a way that's more comprehensible to humans, e.g. literate programs?
> it actually becomes difficult for agents to reason about it.
This I have not seen. Do you have an example?
Does it matter if it's great code?
Like what matters is: - Does it do the thing it's supposed to do - Does it do it with a reasonable amount of resources - Does it do it without any obvious security flaws
Yeah, if they were nuclear codes you'd want to be really really sure and you'd probably want to check every line yourself. But if you're making a habit tracker or 95% of apps out there, it really doesn't matter.
There is definitely some skill in piloting the LLM, where you have an advantage if you understand what "good" is - but I'd argue it really isn't that necessary in most cases. McDonald's has had a lot of success selling food that most chefs would say isn't that great, but it fills that need at that moment.