Martian Code
In September, 2010, the three chairs of the Workshop on Self-Sustaining Systems received a highly unusual submission for entry into their annual conference, to be held that year in Tokyo. One of the three admitted that the paper they received, which described a self-sustaining functional programming language called “Watt,” defined by a computation kernel called “Nock,” was “interesting and well worth pursuing.” Another noted that “the author has very good reason to use an alien language to create Watt.” Yet each of them ultimately decided to reject the proposal.
One chair began with this laconic observation: “A workshop contribution does not have to be perfect, but it needs to be presented in a way that allows for a technical evaluation. This paper is written in a different style,” citing as evidence for the paper’s indigestibility such sentences as “The relationship between Urth and Earth is unclear,” “Urth code is nothing like Earth Code,” and “Watt is functional programming for stupid people like you.” The chair concluded with the earnest rejoinder, “While reading the paper I sometimes felt vaguely insulted, which is not something you want your readers to be.”
Earlier that year, in January 2010, the same author had first published his explanations of Nock and Watt (the latter of which would be renamed Hoon) on a blog inauspiciously titled “Moron Lab.” The title was a pun on molon labe, meaning come and take them—the phrase supposedly uttered by Sparta’s King Leonidas, when Persia’s Xerxes demanded that the Spartans lay down their arms. But while that phrase has come to signify defiance, the blogger evidently meant it in a double-sense. That is, he was posting his creations, which he had worked on in private for seven years, as open source projects, free for the public to come and take. “So long as you don't pretend my work is yours,” the author writes, “you can do whatever you like with it. (If my work actually is yours, it's probably because you had the same idea, but you had it first. This is common with good ideas! Send me a link and I'll post it.)”
The other double-entendre—the moron part—was that the research presented was meant to be amateurish—in the literal sense of doing what one does for the love of doing it, and not for the plaudits or access to bureaucratic posts. “Moron lab,” the author wrote, “presents my independent (but stupid) computer science research. Actually, like all sound engineers, I despise this term. I am a computer programmer.”
In another post, the author went on to draw out an elaborate conceit about the difference between software on Earth, and the sort of software that might be used by a highly advanced 50-million-year-old civilization on Mars. (He had by now chosen the conceit of Mars over that of Urth; Mars is the term that stuck.) In this conceit, the author speculated that at some point in Martian history, its software would have become so complicated that a Martian “code monkey”—that is, someone who has a thankless and boring coding job—would have devised a method to toss it out and start from scratch again. Perhaps this code monkey’s initial effort would have failed. But then someone else would have tried. And then someone else. “Since the Martians had 50 million years to try,” the author writes, “in the end they must have succeeded. The result: Martian code, as we know it today. Not enormous and horrible - tiny and diamond-perfect.”
What makes code “diamond-perfect”? It must be both immutable (after all, in the Martian metaphor, it has lasted 50 million years or so) and self-complete (thus avoiding the patches, circuitous bug fixes, and tangled complexity lamented by Mars’s first maverick code monkey). “Earth-produced Martian code,” the author writes, “is truly Martian in character only if it is obviously and self-evidently immune to any extension or improvement.” What’s another way of putting it? Finally the author circles back to the conceit that gives his blog its title. “Martian software,” he writes, “must be far beyond simple. It can only be described as stupid in its majestic triviality. Or, of course, moronic.”
Thinking back to the consternation of the chairs of the 2010 Workshop on Self-Sustaining Systems, it seems possible, retrospectively, to sort out at least one misconception. Though the initial proposal paper may be lost to time, we can guess that “functional programming for stupid people like you” was not meant to imply that the chairs of the self-sustaining systems workshop were actually stupid. (Almost certainly, they’re not.) What was likely meant was that this new programming language, the one inspired by Martians, was meant to write software that anyone can understand in toto. In this way, the project would differ entirely from our current earth software, a complex mass of interlocking threads, with most of the knotty bundles understood only by specialists.
If you’re like me, and your version of moronic has more to do with zoning out with some chicken wings in front of the game, and less to do with designing diamond-perfect code, then you probably haven’t actually spent much time thinking about why the internet is designed the way it is. Like most highly contingent processes, the current internet’s birth, growth, and gradual usurpation of all our lives has a way of feeling both natural and inevitable. But in truth it is neither. The history of the internet, and of computing, is very strange indeed—that story will be briefly told in chapters 4 and 5 of this book. But the salient part for now is this: On Earth, unlike Mars, no one ever took an ax to the big knot of code that made things so complex.
That’s why, on earth, we don’t run our computers—at least, not the same way we run our cars, or our businesses; instead, we outsource our computing to data centers run by huge corporations that can change our entire computing experience on a whim. That’s why, on earth, we don’t actually own our online identities; instead, we can be impersonated, hacked, or arbitrarily denied service. That’s why, on earth, we don’t actually have online communities; instead we have online malls where we’re allowed to gather for free in exchange for enduring manipulative, unending, and increasingly madness-inducing algorithmically tailored advertising. And that’s at least one big reason why earth in the year 2050 might end up looking like a pretty scary place.
We’ll get to look at Martian computing itself, otherwise known as Urbit, later on, but in the next few chapters let’s take a closer look at some of the ways the current internet falls short of Martian ideals.
Really great, lucid piece. So good for blockchain to have your writing on its side. Looking forward to the subsequent chapters