What are these three steps in other contexts? In maths:

- First step: Numbers.
- Second step: Algebra. Abstract the numbers into numbers expressed as other numbers.
- Third step: Code. Abstract algebra into programs. Programs can’t be inserted into other programs—because of the halting problem, we can’t know what they’ll do ahead of time. Programs have to be run. You can’t express a program in terms of other programs. I’m saying that although you can reduce programs a certain degree, at a certain point they become irreducible atoms, like numbers and algebraic symbols.

In maths, each program constitutes its own space. It’s possible from the perspective of a single program, to understand a little about others… but it’s never entirely possible. Code is relativistic numbers.

Matt Webb, posted 2005-09-02 (talk on 2005-06-11)