Serious coding with LLMs. Lab notes 2026-10-13: Codex vs Claude on the same coding task.

To find out more about the reality of all the (generally overblown) promises about LLMs, I have been doing a very serious experiment on the poster child for Generative AI: coding. I wrote one critical post, and I am close to writing up my conclusions, but I am hitting some work that I have to do first before I can publish that (e.g. create a demo video which is a lot of work, and before that I need to finish some final functionalities and improvements.

This is Lab Note #4. Some basic explanations about my setup are in Lab Note #1.

Codex versus Claude, doing the same task

Now, I have been using Claude Code (Opus, now mostly Fable) for my project since April 2026. And while I will have a lot of critical remarks later in this series, without it I would not have the code and documentation I have now. Anyway, I wanted to give Codex with GPT-6 Astra a chance. I heard good things about it. My first experience was poor, though. Then it did do some decent work. And finally I got Codex and Claude Code to play catch with each others generated review statements to come up with a shared analysis and plan.

Summary of what went before (previous lab note): I encountered a bug in my (graphical modelling) application, namely when moving an element that had orthogonally routed relations attached to it, the relations got rerouted with different bendpoints and such, which was what was intended. An undo returned the element to its place, but it did not restore the bendpoints of the relations, which obviously was not what was intended. The analysis of the bug had not only found it quickly, but also led to the conclusion that it was far too easy to make such omissions/errors in the code, so to make the code more robust, this had to change more fundamentally than simply fixing this bug (which is I suspect what a less capable model would have simply done).

So, I decided to create two separate ‘branches’ in my project and let both Codex and Claude Code implement the plan that I showed in that previous lab note. Two local clones of the project, two terminal windows side by side, two top models in xhigh mode, and off they went.

Not all of this is fully correct, by the way (e.g. ‘xhigh’ is not the highest reasoning setting, but one lower). What it also illustrates is that there is quite a bit of randomness, not just at the lowest level, but also at the highest. That Claude moved to recommending a changed software architecture, for instance, came after answering a question that technically had little to do with it. We as software engineers may thing the generation is something that feels predictable, but that is partly us. Run an LLM from exactly the same state again, and you’ll get different results, that is almost guaranteed. The difference may be small, but it can be large.

In the end I went — obviously — with the architecturally sounder option (Claude’s).

Goodbye, Codex (GPT-6 Astra)

I have just ended my €100 OpenAI GPT subscription. Back to €0. Codex was less reliable — as in: doing what it is supposed to do and not careening off in some unwanted direction — but mostly, it can’t handle a project of my size and setup. I have lost what trust I had. It has given me a bit of useful review, but the code it generated had to be written off.

After a while I found out its default context size (how much it can use to generate new stuff) is about 25% of what Claude has (1 million tokens), and you can max it to about 75% of what Claude had. This limit will have its effect on the quality of its approximations (see Generative AI ‘reasoning models’ don’t reason, even if it seems they do for an explanation of the scaling options of LLMs). OpenAI is definitely no longer throwing money around. Which is a sign, I guess.

OpenAI is definitely no longer throwing money around. That is a sign, I guess.

I have talked with people who are generally satisfied with the results. But they were generally working with a code base (the context) that had years of high quality human software engineering in its history. The LLM was pretty good at finding bugs. And also fixing or adding things, but everything was throughly grounded in that code base.

Is this code any good?

I am very impressed with the amount of functionality that has been built from scratch over the last 6 months or so. This is a complex, rich, partly great application of (yes, yes, it is going to be open sourced at some point) about 175k lines of C++ code (42k of which are testing code), and 20k lines of documentation (and over the months 30k lines of temporary documentation such as design documents for tasks that are archived afterwards). Everything has been generated by the LLM in interaction with me. I did not write a single line of code or documentation. The only thing I did write quite a bit of is the definition of a grammar (the visual modelling application supports multiple grammars which are not hard-coded but human-readable data).

So, I definitely get usable results (how usable in the long run is still to be seen), but while — ignoring Codex — I spent ~€600, I virtually spent €26,269.01 in tokens as I write this. It seems quite clear: this party cannot last.

Which is why my directions at the LLM are heavily skewed in the direction of assuming I have to take over manual development and maintenance in the foreseeable future. So, how good is that code from that perspective? I have enlisted the help of a professional code quality auditor who uses a method called IFSQ (which is in essence a manual inspection to detect certain types of defects that make human maintenance hard. More about that another time. And more about the mental load later too.

Previously on the LLM-coding experiment:

• First report: Anthropic/OpenAI may be spending more than $1000 for every $100 you pay them (7 June 2026)
• Lab Note #1: Serious coding with LLMs. Lab notes 2026-09-25: Codex vs Claude Code, Usage Limit Resets (25 September 2026)
• Lab Note #2: Serious coding with LLMs. Lab notes 2026-09-27: Codex succeeds, Claude reviews the result. (27 September 2026)
• Lab Note #3: Serious coding with LLMs. Lab notes 2026-10-01: Codex and Claude generate a shared analysis (1 October 2026)

Leave a Reply