I like incremental improvements, it’s almost like a mathematical induction.
Based on the previous step, I assume we’ll take the next, that works a lot of times.
Is nice to have old things that still work, like a printed photograph.
The artifact generated by the camera and printer technologies relies only on our vision and the printed material properties.
Modern books rely on similar things, like the paper, but, there’s also a symbolic level. A GOOD photograph will tell something that can be understood just by looking, but book needs an alphabet, a language, i.e. higher level concepts.
A book typeset in Latex is another level of abstraction above, it contains the instructions for a computer build the book.
To me what’s beautiful in that is not only each lens we use to see:
- A physical thing printed on paper is, like a photograph, or text.
- A book, filled with ideas, part of a larger culture.
- A computer program, that precisely defines a document.
But also how those levels interact with each other, and with the uncountable others below or above it.
Some people look at that picture and focus only the computer to paper path.
- They see the automation of the typesetting, printing, and selling steps.
- Its a path takes humans away from a pipeline that turns ideas into physical
entities.
But there are so many different ways to see the world! Let’s take the Latex to a printed book path in reverse.
How to we take the printed books we have in the world, and make the stairs to reach the next levels of abstraction? I’ll leave that up to your imagination for now, lets apply this to brainfuck.
What’s below, and what’s above it? what’s to the side of it?
turing machine -- lambda calculus
brainfuck -- forth -- lisp
x86_64 -- AArch64
Let’s take the path from brainfuck to the turing machine. The brainfuck specification is a concrete instance of the abstract idea of a turing machine. It’s an extremely simple definition, that much like a seed, completely contains the level above it. It encapsulates a higher level above it, in a specially beautiful way due to it’s simplicity, like a seed and a tree.
With brainfuck, just by carefully defining the <[+,.-]> symbols, we can carry computers. Since in theory any program can be translated to brainfuck, we can store any computer program in a brainfuck clay tablet, stone engraving, papyrus, and it’ll reasonably live forever.
To me that’s one of the most beautiful things about both zig and typst. They live side by side, creating simpler paths for humans to navigate the levels of abstraction. An effort to create concrete implementations that try to contain higher level abstractions, i.e. hermetic / leak-proof vessels.