It's the integration, stupid
Building programming languages on trains
Many years ago I watched a science program with my kids. The presenter unveiled a large blue barrel of water. Then they took lots of bags of different chemicals from a box, carefully explaining what each one was and how much it weighed. And then, just as our confusion reached its peak, they explained these were the ingredients you needed to make a human. It’s probably the best example of the whole is greater than the sum of the parts I’ve ever seen.
Anthropic are doing something similar with Claude at the moment. Rather than just provide an LLM, they are building out an ecosystem of tools, plugins, skills and connectors. Which is opening up some interesting new options…
My train trip
Last week I found myself on a train. And, as trains in UK are wont to do, this train suddenly slowed down and started creeping along the track. Twenty years ago I’d have no other option that to hope the guard might enlighten us. More recently I’d have searched realtimetrains to find my train. And look for the trains ahead. Or perhaps look at live signaling diagrams.
But I’m lazy. And I have Claude. So I decided to get it involved. Initially I tried building a little app:
Claude was only too happy to build an artefact. But it didn’t work - permissions issues meant it couldn’t get access to location info. We tried building a web-app. But that didn’t work at all. And then I realised there was an easier way - just ask Claude.
Then it found some nearby trains from realtimetrains…
And took another sample a minute later to work out if I was moving north or south.
Then it decided which train I was on.
Except I wasn’t. I was on the following train.
Easy mistake to make - the two trains follow each other closely. Why didn’t Claude notice the 1S97? Because my train didn’t stop at Durham - and Claude was looking at departures from Durham. Oops.
It also got rather confused with delays. When I asked why we keep slowing, it mentioned two trains that were scheduled to arrive ahead of us but which were delayed and now behind us…
Yeah, but no. The trains from Liverpool and Plymouth aren’t the problem. You can feel the audience shouting out, "they’re behind you".
But it was useful in confirming the problem was just we’d caught up with the LNER train ahead, rather than something worse. And having a conversation with Claude was much easier than going and looking up details on the websites. Location data and web search have transformed Claude into a genuinely useful travel companion.
The other things I did on the train
On the way down, an idea for a couple of small apps popped into my head. In the past I’d have had to leave them for later. But now I can build them on the fly. I couldn’t be bothered getting my laptop out, so I fired up Claude Code on my phone. And they were ready with >90% test coverage by the time I arrived.
On the way back I got out my laptop and spent a few happy hours building with Claude Code. Some of them were useful tools. And one was, well, more whimsical. Like many of us I’ve dreamt of building my own programming language. And today I realised the dream using Claude Code and an agentic framework.
The end result? Let me introduce you to mdhavers. It’s a dynamically-typed programming language that uses Scots vocabulary for keywords and produces error messages in Scots dialect. It’s got an interpreter, a JavaScript compiler, a native compiler, WASM support.
It uses aye and nae for booleans, naething for null, blether to print. Error messages are in Scots - "Och! Ah dinnae ken whit ‘xyz’ is" or "Ye numpty! Tryin’ tae divide by zero". The standard library includes functions like heid() (first element), bum() (last element), and wheesht() (trim whitespace - be quiet!).
Performance wise it’s not the fastest language. There are lots of holes; I wouldn’t be abandoning Rust just yet. But it can implement simple apps.
Does the world need mdhavers? You can probably work that out yourself. But it’s an interesting exercise in what the tools can create today with minimal oversight. And a testament to the frameworks Anthropic have built around Claude - Claude Code and plugins have enabled this world.
And so?
You might have noticed I’ve not mentioned Codex until now. And there’s a reason for that. Opus 4.5 is excellent, sure. But that’s not why I used it on my travels. I switched because Anthropic built the plumbing - location access, mobile Claude Code, agentic frameworks that run for hours. The scaffolding around OpenAI’s models is less advanced. I can’t use Codex from my phone on a train. I trust it less when it’s building unsupervised.
Many folks are obsessing over benchmark scores and reasoning improvements. Measuring the chemicals in the barrel. But it’s not just about making better chemicals - we need to combine them too. We need to build the organism. And that could turn out to be the more interesting race.









