David J. Paola

On Alan Kay’s history of Smalltalk

Read it here

He keeps referring to programs’ size in pages, rather than bytes or any capacity. It means he thought about programs in terms of their length, rather than how much space they’d require on the machine.

I think he’s decoupling a program’s “length”, as a human perceives it in his head, from a program’s “size”, as a computer perceives it in order to execute it.

It’s a subtle distinction, but I think it’s pretty useful. It means for performance reasons, programmers shouldn’t care about the “size”, but they should care about the “length”. I suspect this is where the mantra of “code should be for humans to read, not for computers to execute” is born. If you can rely on “turtles all the way down” (such as LISP’s functions all the way down), then the computer execution is something you shouldn’t worry about. Let the system’s builtin functionality make it executable.

This keeps the goal of amplifying human abilities as priority number one, and especially concerns about where our locus of attention should be: always on the work, never on the interface. Facilitate flow.