Thurs and Friday at noon, I’ll be presenting a poster session at the College Art Association in DC. I’ll be focusing on qualities of writing that are not encouraged in mainstream code (connotation, affect, excessive cleverness, and to some degree personal style) but become the focus in obfuscated coding and esoteric language design.
It starts with a look at the infamous leak of Microsoft’s Windows 2k source code. At the time of the leak, there was a lot of interest in the “embarrassing” cursing and insults in the comments. Comments serve as a space where sometimes it’s okay to break from constrained style of corporate coding and express individual opinion – so long as it’s justified as being helpful to other coders. I compare this to the (classic 1990s semiotic example of) the touchdown dance in football*. Where the body in football functions as a unit of a team, the touchdown dance allows for a momentary expression of joy and accomplishment as an individual. The comments in corporate code present a similar opportunity, but the emotional register is usually one of frustration with terrible code. Most comments described as “unprofessional” or “embarrassing” are expressions of frustration. Second to that, we have anger (mostly at “morons;” one of the most popular insults in the Microsoft leak) or hopelessness. It’s pretty unusual for a coder to write comments expressing joy, which could be taken as a kind of bragging.
What’s most remarkable about all of these is how rare they are. Coders use a constrained style and neutral voice (as Dijkstra’s The Humble Programmer tells us) to avoid losing control of the code and ending up in a place where they no longer understand what is happening. Perhaps this style carries to the comments as well, despite the fact that comments do not (directly) affect the running of code; that these habits are very ingrained.
Obfuscated code and esoteric programming are releases from this constrained style. Giving up on the transparency of code – the idea that the actual text of code should not impede us from seeing its behavior – opens up possibilities to use code in unconventional ways and for personal expression. I’ll discuss some classic esolanguages from this perspective: Whitespace, brainfuck, Shakespeare and Befunge, plus some of my favorite lesser-known examples, including Unneccessary and Checkout.
Previously: The Less Humble Programmer
* EDIT: Actually, it’s from this book: Kivitso, Peter and Rundblad, Georganne Multiculturalism in the United States: Current Issues,Contemporary Voices