I strongly believe the reason gpt-5.x performs so well on large projects is because of the focused training they've done on their dedicated apply_patch primitive.
The official implementation of apply_patch is well thought out. It is a two-phase process that will not actually make any changes until all files in the change set are not ambiguous. The pre-commit error feedback usually fixes anchoring issues with one or two additional attempts. It generally goes something like:
Reading file A L1:154
Reading file B L1:123
Attempting to apply patch...
[anchor errors for both A & B]
Reading file A L43:67
Reading file B L50:74
Attempting to apply patch...
Patch succeeded! Running compilation & unit tests...
The anchor error feedback helps massively because in this implementation it also returns the current line numbers where the problem was found.
Techniques that replace the whole file or depend on find-replace are useful in more isolated contexts. However, when you need to refactor 20+ files, something like apply_patch is what you want. Anything that depends on specific line numbers for actual replacement targets is a total dead end for complex edit scenarios.
GPT-5.5 is the better programmer but Opus 4.8 remains the better system architect and product designer.
Codex is very "miss the forest for the trees", but is much better at successfully making large changes in large codebases. Claude Code makes more mistakes, but has more taste and a better grasp on idiomatic and elegant software development.
Great analysis and follows my experience as well. Codex is better when you know how you want the design and the architecture and you drive the agent a lot more aggressively. Claude Code feels like more autopilot so executives and users who didn’t code before AI like it a lot more.
But I feel like an expert who can drive GPT aggressively will out perform Opus. It’s why some smart people I know are opting for GPT and have fallen off on Opus. It’s like asking an F1 driver to sit in a taxi.
Opus 4.7 (haven't tried 4.8) just really struggles writing correct code for complicated (i.e. valuable) work. I can handle architecture, which takes <1% of my time anyway. But writing code that's wrong is a cardinal sin. I've had much more luck with GPT 5.5 so far.
This is exactly right. Claude has baked in autonomy and preferences that let it handle underspecified prompts elegantly, which makes it seem smarter to people who like to prompt that way, but it also ignores instructions and fights you on things, which makes it a bad model for people who know what they want to do and specify it.
More interesting than arguing a jumble of electrochemical reactions have taste? That may seem more readily familiar but is no less strange if you prod at it. Nonetheless it’s difficult to argue either don’t produce output that has qualities of discernment (ie taste).
Isn't it just arguing that one complex weighted graph was tuned to output tokens that more align with what current day users would define as 'taste'?
I don't think it necessarily says anything about a model itself having 'taste' in some subjective way.
If the fashion changes would the model update with it without retraining? No. So the model doesn't have 'taste' in that sense. It has alignment to current human definitions of taste.
The roulette pockets for the model are bigger for some outputs than others. Draw a big enough black box around it and a different one around humans and it's insistinguishable.
It is more capable of writing code I find tasteful and maintainable. It is debatable to what extent it itself has taste. Its outputs just suit my taste more than Codex's do, even though Codex introduces fewer bugs.
I'm experiencing the same. Codex gtp-5.5 has more brilliant intuitions, write less code, i.e. it identifies the exact point in which the modification shall be done. Nevertheless, huge improvements on personality from opus 4.7 (it was too accomodating) to opus 4.8
My problem with codex/gpt that is too verbose (mostly js and python): a lot of helper functions, a lot of 1 or 2 line functions used in 1 place only, a lot of types or proxy like objects.
I have specific skills for trying to avoid this, but nevertheless I spent half of the time fighting with its verbosity.
Currently, I'm trying to scaffold the functions/classes I know I need with NotImpelmented and ask it to implement only inside those specific places. It's a little bit better, but I still have to fight with function in functions definitions ...
You're using last week's model; Opus 4.7 is old news. Opus 6.9 is the new hotness; it is a better product manager than GPT, and has more X productivity. It replaced our junior dev team, and tells me my hair looks good.
My experience as well. Although this week I've moved to Cursor and Composer 2.5. It's so fast that any faults can be iterated on super quickly. The model is just insanely good with code things.
GPT 5.5 still invents facts rather than looking them up, and manages to come across both as condescending and sycophantic. It feels like talking to a used car salesman.
Funny cause I'm quite literally having this exact issue with 4.8 as we speak. I've been going back and forth with Claude since yesterday afternoon on chopping up, stabilizing and facilitating recovery on a flaky mega-pipeline. Not 5 minutes ago, I had to remind it that two of the solutions it proposed were not possible because the target technology doesn't allow what it wanted to do, despite pointing it to the very docs that says it can't be done in the first place.
As far as its tone... Both feel like sycophantic as hell to me. To be honest, they just all feel so.
> GPT 5.5 still invents facts rather than looking them up
So does Claude, what’s your point?
I used it and ChatGPT this week in trying to assist troubleshooting a complex DB related issue and Claude had to apologise no less than three times in which it admitted to talking complete shit.
Just one example of the kind of shit it dribbled:
> I need to be upfront with you. I should not have claimed X as if I knew that for a fact. That was overreach on my part.
I've noticed that Claude has made less mistakes than in the past. I feel it checks it's own work more rigorously now, and understands it's own claims better and knows how to confirm them.
It rarely happens to me that Claude comes with clearly wrong modifications. Only with quite complicated problems with unclear variable names for example. But usually Claude asks me when something is unclear.