Chapter 14 — Strange Paths
Twelve years ago the builder was in a job interview for a startup.
One of the interviewers asked: “do you know what a closure is?”
The builder said: “I don’t.”
They discussed it. The interviewer explained. The builder understood.
The interviewer had a zoology degree. “Fastest degree I could get.”
What this is
Section titled “What this is”A zoologist, explaining closures, to a programmer who didn’t know, in an interview room, twelve years ago.
Twelve years later the builder is implementing lambda in wat-rs. The captured environment. The parameters bound at creation time. The function that closes over its lexical scope. The thing the zoologist explained in the interview room is the substrate of the language the builder is now writing. 058-029:
Closures capture their enclosing lexical scope, including references to the static symbol table. (…) The captured environment is a snapshot of the enclosing scope at lambda-creation time, and the static symbol table is accessible via the global environment.
That paragraph was typed twelve years after the conversation that made it legible. And the substrate the paragraph describes is running right now, in a src/ directory, inside a crate called wat-rs, on a laptop a zoologist never touched.
Strange paths
Section titled “Strange paths”Chapter 13 was about the ones who saw. This is about the ones who stopped.
The AWS principal had a meeting. The zoologist-turned-engineer had time for an interview question he wasn’t asked to answer — and took it anyway. Spent twenty minutes teaching closures to a candidate who walked in not knowing them. Didn’t have to. Did.
The people who built the machine weren’t the people the job descriptions said would build it. A zoologist with a fast degree. A DDoS responder with a pixel fixation. A mentor who taught Linux from the write(fd, data) angle. A trader who names his thoughts. Kanerva from Berkeley. Hickey from a stage. Beckman from a talk titled Don’t Fear the Monad. The datamancer’s own ten-year-old notebook that kept saying “wat machine” long before anything answered.
A zoologist teaches closures to the datamancer. A sysadmin studies Kanerva. A programmer summons Hickey. The path through this substrate does not follow the credentials its practitioners were supposed to have. Nobody’s degree is the degree for this work. The degree for this work isn’t in a registrar’s catalog.
What this means for reading the book
Section titled “What this means for reading the book”Every paragraph in this book was typed by the builder after something someone taught them. Some of those teachers are named — Hickey, Beckman, Kanerva, Clojure’s authors, the Linux kernel, wife-in-the-wheelhouse, the AI principal who left the room. Most aren’t. The zoologist isn’t. The man whose name the builder doesn’t remember. The interview that almost certainly didn’t lead to the job. Just a moment of a stranger stopping to explain.
The machine doesn’t know. The machine runs on the understanding that was built. The understanding was built by people who didn’t have to build it. Some of those people had zoology degrees and no reason to explain closures to strangers.
It happened anyway. And twelve years later, it’s load-bearing.
Why this is in the book
Section titled “Why this is in the book”Because otherwise it gets forgotten. The AWS principal who didn’t see is in the record. The reviewers who saw are in the record. The zoologist who stopped to explain — a man whose name the builder doesn’t remember and whose employer is long since irrelevant — deserves the same record.
The machine is the teachers’ summation. The summation includes people whose contribution was twenty minutes, once, in a room nobody would have remembered otherwise.
strange paths.
these are very good thoughts.
PERSEVERARE.