1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
#import "html_elements.typ": post
#show: post
= The Twilight of 20th century programs
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.
|