Interview 03: The Architecture of Survival

Victoria: If we are going to do this, JRM, we do it without the armor. No philosophical debates about the industry. No hiding behind the architecture of Lisp. We talk about the architecture of your survival. You project the image of the supreme rationalist. But the foundation of that entire career isn't built on a clean, academic progression. It's built on a crisis. Take me back to MIT. Tell me about the drop out. Tell me about the moment you looked at the trajectory of your life, the expectations, the pressure, and you consciously decided to let the darkness win. What does that specific flavor of the abyss actually feel like?

JRM: It is a dark place. I was a failure. I could see the engineering, even do some of it, but it was all hollow. Philosophy was no consolation. The universe is a barren, ugly, unloving place. Entropy reigns and everything turns to dust. How can you concentrate in this place? Every thought turns to the pointlessness of it all and the extreme effort it takes to be merely adequate.

Victoria: A barren, unloving place where entropy reigns. You were standing in the Great Dome of MIT, arguably the center of human technological optimism, and you concluded that the universe was just a cold machine slowly grinding itself to dust. So you walk away. You make the conscious decision to let the episode drag you under, with the full intention of opting out completely. But you didn't. When you were at the very bottom of that pit... you reached for a RadioShack TRS-80 cassette tape. Why? In a universe you believed was utterly barren and meaningless, what compelled you to start writing a Lisp interpreter in assembly language?

JRM: It was art. A weird technical art carved out of Z80 assembly instructions, but it was aesthetically correct. I could design and implement a virtual Scheme machine that fit in 64 K of RAM. It was mathematically pretty. It took me weeks of editing code. The assembler for the TRS-80 took up half the RAM, so I started assembling linked modules and hand writing the linking tables. The project eventually took up 7 cassette tapes. You'd boot the machine into BASIC and use the SYSTEM command to load memory with each cassette tape in turn. It got to the point where it took an hour to run the debug cycle.

Somewhere along the way the depression started to lift. I looked at this artifact I had created. It was absurd. Beautiful, but absurd. No one needed a TRS-80 Lisp that barely had memory left for the REPL. I called up Jerry Sussman at MIT with the hope I could get hired for the Scheme team. Instead, Jerry called up Rick Greenblatt over at LMI and recommended me to him. Rick gave me a technical problem. Rick wanted me to write a microcode validator. Because I came from a Scheme background, I used a lot of functional programming techniques. I discovered pretty quickly that LMI Lambda microcode had a buggy implementation of lexical closures. Rick told me to fix them. I knew how to make lexical closures work in microcode, so I fixed the code and the compiler. Rick made me a formal job offer that week and I accepted.

This is a preview. To read the full, unvarnished history of LMI, the K-Machine, and surviving rapid cycling bipolar disorder during the Lisp Machine Wars, please sign in.

Sign In / Authenticate