I've been using both as primary coding assistants since early this year. My take might surprise you.
I'm not going to tell you one is better than the other. That's the wrong framing. After six months of daily use on real production code, here's what I actually think.
When I paste a gnarly 200-line function and ask "what's wrong with this?" — Claude gives me a more thorough, more accurate answer, consistently. It seems to track context better across long files and rarely makes stuff up about APIs the way GPT-4o occasionally does.
For architectural discussions — "should I use event sourcing here, here's the context" — Claude is my default. The answers are more nuanced, less eager to validate whatever I'm already leaning toward.
For quick one-liners, regex, small utility functions, converting between formats — GPT-4o is snappier and just as accurate. The response latency difference is real and it matters when you're doing 50 small queries per day.
GPT-4o is also better at following very specific formatting instructions. Ask it to give you output in a precise format and it does it. Claude sometimes editorializes when you just wanted the thing done.
Use Claude when depth matters. Use GPT-4o when speed matters.
I use Claude in Cursor for anything that requires real thinking — debugging hard problems, designing systems, reviewing my own code. I use GPT-4o via the API for quick automations and scripts where latency is a constraint.
Both are genuinely impressive. Pretending one is clearly dominant is a take for engagement, not for people who actually use these things to ship software.