Claude and DeepSeek in implementing TrapC…
Baltimore, MD (trapc.org) 27 January 2026 – Thomas Claburn at The Register posted yesterday: How one developer used Claude to build a memory-safe extension of C, about vibe coding in C, AI in teaching, and the opposing technical approaches to AI in the USA and China. This Chinese TV News clip about AI interviewing me was broadcast on Chinese television and has half a million views online in China. China CNTV is state-operated television like the BBC in the UK. In the interview I describe how China is taking an on-device approach to AI while America is all-in on AI cloud data centers.
It’s true, as The Register article points out, that I’d used Anthropic Claude to write code to build TrapC. However, for debugging I’m using made-in-China DeepSeek. That came about in a surprising way.
Claude went offline one morning last week blocking me finishing a debugging task I’d been struggling with the night before. I prefer to finish a bug-fix while the bug is still fresh in my mind, while I remember the context and to not start over. Coincidentally, the night before I had talked about AI vibe coding with my friend Matt. I met Matt when we both worked at DIRECTV, when Matt was the head of the AT&T DIRECTV Innovation Lab while I worked for our CTO defining new satellite set-top box product engineering specifications.
When I called Matt I was just looking to vent, that I was pretty frustrated that I was taking too long to track down a bug. Matt said that he’s finding Deepseek better at coding that Claude. With Claude offline the next morning, it had to be either ChatGPT or Deepseek. No offense to other AI LLM assistants, but I don’t have time to play with everything. Because I don’t have a finished TrapC compiler yet, I still face old school C memory bugs. How would DeepSeek fare at fixing my C code memory bug from the night before?
Deepseek quickly found the bug that had me bedeviled the night before. A bug that Claude couldn’t find. In an ironic twist, the bug was in code Claude had generated, that I had cut-and-pasted carelessly. However, I cannot really blame Claude. Claude had tried to tell me not to make the mistake I made, but it was late at night, and I wasn’t paying close enough attention.

With hindsight it was a silly code mistake I should have caught. All I had needed was to know where to look. While making a code change suggestion, Claude had broken the else branch of my code and replaced it with a comment like /* Keep this code as is */. Without noticing, I cut-and-pasted the whole block of code.
Had Claude simply written the words “Keep this part of your code as is”, the compiler would have stopped me. However, as a C comment it was a completely legal no-op. Passed the C compiler no problem. The ‘else’ branch wasn’t code I was working on or testing then. It was sometime later that a mysterious crash came to my attention. I was baffled because it seemed so unrelated and far away from the many changes I’d been making to my codebase. And so it was.
My bug was in an ‘else’ branch outside where I was looking. My missing ‘else’ logic became a time bomb waiting for much later clean-up code to trigger a crash. DeepSeek spotted it right away. The moment DeepSeek pointed it out, I said to myself, duh!
I’m paying $200 a year for Claude, $99 a year for Copilot/ChatGPT, and DeepSeek costs nothing. I use all three. It’s important to check AI work when coding. With AI, be as thoughtful as you would be managing a sharp and enthusiastic, yet careless, fresh computer science graduate. See “exiting variable handling code” Claude comment below…
/* Not a member function, check if it's a regular function call */
enum LexToken token = LexGetToken(Parser, NULL, false);
if (token == TokenOpenParen)
{ /* Regular function call */
ExpressionParseFunctionCall(Parser, StackTop, TokenName,
Parser->Mode == RunModeRun && *Precedence < *IgnorePrecedence);
}
else
{ /* Variable reference */
// ... existing variable handling code ...
}