This week, I was watching a file conversion taking a long time. Basically, we have a sparsely organised collection of many millions of datapoints, and we want to be able to see them at different levels of detail, so there exists an optimised format with LOD layers, compression, indexes and so forth. Converting from our raw format to this optimised format took several minutes of CPU time and a large amount of memory.
For fun, I pointed Claude at the reference implementation of the conversion, and told it to make it at least ten times faster and ideally more memory efficient, and that it could focus on only the features I actually needed and none of the stuff I didn’t. I did a planning session with Superpowers and told it to consider using an iterative approach like Autoresearch.
Then I pretty much played Cassette Beasts for the rest of the day.
When I came back, Claude had achieved an ~8.7x wall-clock speedup on the state of the art for this conversion, not just against the reference implementation. It wrote an implementation in Rust that uses all kinds of things I don’t understand (octrees, rayon, “atomic grids”, which I think it must have stolen from a William Gibson novel) but comes out with essentially identical - and perfectly compatible - files as the reference implementation. It implemented a --fast mode and a --low-memory mode, and a default that sat in between the two. My expectations were, as they so often are with Claude Code since November, exceeded to a degree that made my head spin.
I’m not even going to publish this code anywhere. There’s no benefit to me or almost anyone else in doing so. Others who have the same problem (and, critically, a coding agent) can essentially have their own agent spin up their own implementation, which can be tailored to their own personal requirements - maybe they’d prefer it in C or on the JVM, or non-parallelism requirements, or, or, or…
Not to mention that there’s essentially no benefit to me to publicly ‘own’ this code - I can barely even read Rust and I’m pretty sure an octree is one of the mobs in Zelda. Nobody should trust this codebase when essentially all I can say is “works on my machine for me and my extremely specific use case”. I think in a way this is selfish - I don’t want the hassle of owning this code - and in another way, I think it’s the direction a lot of code is going to take in the coming years.
I’ve touched on it before on this blog, but I’m pretty sure that the age of general-use software is ending and the age of hyper-specific software is dawning.
I think that as the market penetration of coding agents to software developers increases, the benefit to releasing code as code may fade. As more users start to understand coding agents, the benefit of releasing code as application may also fade, since the user can simply ask for the application they want with no middle-man. (There are other avenues, of course. For example, I expect code as infrastructure substrate - your printer, elevator, point-of-sale system, or aeroplane control surfaces - will remain relatively as it is today for a few more years. Although… those are so heavily specified that the code is essentially a byproduct of the spec, so maybe a coding agent would do an even better job than they do for other domains.)
In any case, what I’m beginning to think about is that it’s going to become a lot lot more about being able to interoperate with other similar-but-different applications. Astronomer X is going to want to be able to give the files from their agent-written, custom-tailored telescope system to Physicist Y so they can process them in their own tailored astrophysics interface, and send the resulting information to Graduate Student Z who wants to run some model on it for their thesis. Instead of shared software there may be much more shared format.
Well, that’s two half-thought-through blog posts in one. Unfortunately two half-thoughts don’t add up to a single full thought, and even more unfortunately for you, the rest of the thinking is going to have to be your responsibility. because I’ve got Cassette Beasts to catch.