Ontology recapitulates technology

Building Aki made me think about how its progress recapitulates the history of computing generally.

I grew up during the birth of personal computing, and to say it shaped my childhood is about as understatement-y as I can get. My father brought home one of the first IBM PC clones, a Panasonic "luggable" PC that I think I used far more than he did. Before that, my brother picked up the Sinclair ZX 1000 and ZX 2068. Friends of mine had Atari 800s, Amigas, Commodore 64/128s, Apple IIs, you name it. I borrowed from the library and read every extant issue of Creative Computing (still for my money, the greatest periodical ever created in re computing generally).

It's hard not to be nostalgic about all this. Computing seemed like a simpler affair back then. There was far less between you and the hardware than there is now. The upper limit of what was possible with a PC seemed like a domain that a single person could master effectively. This provides perspective: you have some idea of how far we've come since then, and how much work is involved to accomplish even the simplest things. You start with the most primitive things possible -- storing and retrieving values -- and then move up from there to progressively more sophisticated structures and concepts: pointers, strings, functions, advanced control flow concepts, modules, etc.

Creating a language in 2019 means you have that much more preceding work to build on, that many more failed experiments to avoid -- and that many more successful ones to emulate. But you still have to start at the bottom, with the most primitive of primitives. Those primitives are relative to where you stand in the flow of things, of course; in the 8088 days we didn't have AVX512 instructions for the sake of vectorizing math. But the direction is clear: from as little as possible on up.