I’ve been doing a lot of work recently on an ancient project of mine, C-INTERCAL, that’s an implementation of the longest-running joke in the history of computer languages. It’s an implementation, begun in 1990, of a language conceived in 1972 as a parody of programming languages of the 1960s. Now it’s nearly 40 years later, and yet some skilled hackers are still investing their time into fixing bugs, shipping releases, and even (gasp!) documenting the thing.
That’s a lot of effort to plow into a joke, and some people don’t get why. But there are parallels elsewhere: consider, for example, the venerable custom of issuing spoof Internet standards, published through the same channels as the real RFCs, on every April 1st. Behaviors like INTERCAL or the spoof RFCs don’t usually persist as long as these have without some powerful reason behind them.
I got a clue about this in the early 1990s when I was working on the Jargon File, another artifact with aspects of a joke that many hackers take very seriously indeed. I had been invited to a sort of cultural-studies conference run by the Getty Foundation at which a bunch of anthropologists and folklorists were trying to get their heads around hacker culture as a culture, using me more or less as a star informant.
I was talking with one, and asked what her sorts of questions cultural anthropologists normally ask about cultures they’re doing fieldwork on. She thought for a moment and said: “What’s the ritual calendar? What are the high holy days of mandatory observance?” It took me a bit of thought to understand why this is an important question, but it certainly is one. The high holy days of a culture encode the myths and values it most celebrates.
I figuratively scratched my head and said “Uh, I dunno…I don’t think of any *HOLY SHIT*….yes, actually, I can. April Fool’s Day!” And then I explained about the Joke RFCs and April Fool USENET parodies. And we gazed upon each other with a feeling of discovery, for it was clear to both of us that we had grasped something important.
There are lots of things that can help define a culture. Shared artifacts. Shared myths – and by “myth” I don’t necessarily mean a falsehood, it can be real history interpreted in a value-laden or normative way. Shared taboos. Shared attitudes. And shared jokes. One of the things that can help define a culture is “we are a people who laugh at the same things”.
INTERCAL, and the joke RFCs, and the in-jokes in the Jargon File, all have an important gatekeeping function for the hacker culture. Hackers get why these things are funny, the same way they get why a feature request from Donald Knuth is like unto a commandment from $DEITY ($DEITY is yet another venerable hacker joke – it expands as “insert choice of god here”). These artifacts are like the famous quip about jazz that if you need to have it explained to you you’ll never get it – a defining mystery that selects not merely for technical competence for but a certain posture of mind. And induces it, too…
The people who write and maintain these jokes are expressing and reifying hacker values. This is especially important for us, because our avenues of cultural transmission are in some ways quite restricted. We don’t have a material culture; we use and borrow the tangible artifacts of the culture(s) around us, but we don’t really have any of our own other than ephemera like T-shirts and mugs and a few toys from ThinkGeek. Nor do we have generational transmission in the normal sense; almost nobody gets to learn hacker folklore at a parent’s knee (although I know one exceptional family that comes close to this).
Here is, as it were, the punch line: April Fool’s Day is the hackers’ only annual day of fixed observance in part because shared jokes are more central to our identity than they are in most cultures. Which takes us back to INTERCAL; the programmer (or would-be programmer) who stumbles across it, reads, and begins to laugh, is becoming one of us. Is, in fact, making himself one of us. He is acquiring, by transmission through its jokes, the hacker posture of mind. Much the same could be said, for example, of the infamous RFC 1149 (A Standard for the Transmission of IP Datagrams on Avian Carriers).
The joke gets funnier, and the cultural transmission mechanism more effective, as the material around it more exactly reflects the serious values of the culture. Thus, INTERCAL has to be an actual working compiler for a Turing-complete language, and its maintainers have evolved it from a scratchy one-off into a near-spotless example of good practice – clean, well-documented code using up-to-date tools and version control and with a regression-test suite. In fact you can look back through the INTERCAL code, as I recently did, and see in it a potted history of how key practices in software tools, version control, documentation, testing and software distribution have evolved in the the last twenty years. From shar archives to tarballs; from no version control to centralized version control to distributed; from flat-text documentation to groff to texinfo to asciidoc; the assimilation of the Web; and, recently, an increasing focus on development by test.
There are messages on several levels here: one of the most important is that hackers are expected to be such dedicated craftsmen that they work to contemporary high standards even when the project is an intrinsically ridiculous museum piece. In a similar spirit, the best joke RFCs are such immaculately deadpan parodies of standards language that if you’re not careful you can read several paragraphs in before you realize you are up to your eyeballs in satire.
This is odder than it may appear at first. It is not just that hackers use technical humor to maintain an ironic distance from the machinery of software production they are so intimate with. It’s that this ironic distance, this affectionate parody, is one of the core observances of hacker culture – actually definitional of it. We have a term for this borrowed from SF fandom; “ha ha only serious”, and I can’t think of any real parallel to it elsewhere; even circus clowns don’t celebrate their art by making satires of it.
A non-hacker might well ask “Why do I care?” Which is a good question; it’s all very well that hackers have invented a cute little subculture around themselves, and may be academically interesting that acculturation by ha-ha-only-serious is important there. But does the existence of this culture and these mechanisms mean anything to anyone else but anthropologists? Is there any broader social utility here?
Yes, there is. The jokes and the culture they figure forth matters because every once in a while something erupts out of them that is a game changer on a civilization-wide level. Two of the big ones were the Internet and open-source software. These two movements were intimately intertwined with hacker culture, both produced by it and productive of it. The origins of our tribe go back a bit further than either technology, but we have since re-invented ourselves as the people who make that stuff work.
And I don’t mean “make it work” in a narrow technical sense, either. As long as there are people who laugh at INTERCAL and RFC1149 and the Unix koans of Master Foo, and recognize themselves in the Jargon File, those same people will care passionately that computing technology is an instrument of liberation rather than control. They won’t be able to help themselves, because they will have absorbed inextricably with the jokes some values that are no joke at all. High standards of craftsmanship; a subversive sense of humor; a belief in the power of creative choice and voluntary cooperation; a spirit of individualism and playfulness; and not least, a skepticism about the pretensions of credentialism, bureaucracy and authority that is both healthy and bone-deep.
These are not trivial qualities in people who who have their hands on the controls of what may be the most critical layer of shared infrastructure in today’s computer-dependent civilization. Someday, the spirit of hacker humor might head off any number of grim futures. In fact, I think it not unlikely that it already has.