Monday, 1 October 2018

The history of a Zorklike programming interpreter is a tale of language, art, code and literature

The heroic age of text adventure games was dominated by Zork and Zorkalikes, many from the games studio Infocom; the text adventures' fortunes sagged when improvements in computer graphics lowered the average gamer's age, and then rose again when BBSes carved new spaces for text-based play.

The legacy of those games is the "interactive fiction" artform, which is largely practiced by programming in "Inform," a highly idiosyncratic programming language whose principal maintainer, Graham Nelson, is a deep thinker on the intersection of computing and art, and whose delightful essay (the transcript of a speech) on the history of Inform is an utterly captivating meditation on the way that code can be literature, and the role that artistic and technical choices have in the literary form of software.

One important characteristic of Inform is its ability to tolerate ambiguity in the categories it relies on: the edge-cases and corner-cases in seemingly obvious categories can quickly grow to eclipse the category itself (date, time, addresses, names, obscenity, gender, etc). This makes it especially good for storytelling and other forms of narrative art.

Also fascinating is Nelson's professed embarrassment over the state of his source code, a mess that he blames for the closed source status of Inform (though there are lots of programmers who have this problem, Nelson is the one who has devoted his career to promoting code as a literary form intended to be consumed by other humans!).

Nelson closes with the roadmap for improvements to Inform, which he would like see forming a backend for apps and websites, which is something I would find absolutely delightful.

To compare programming languages with natural languages is a little heretical in computer science, but I’m not sure why that is. The development of the theory of programming languages was, after all, spurred on by the early work of Noam Chomsky.

Thus, for example, Donald Knuth took Chomsky’s book on structural linguistics with him on his honeymoon. In spite of this Don is still married to Jill, 45 years later: when you have dinner with the Knuths you talk more about quilting and printing Lutheran bibles than programming, but it all seems of a piece.

I mention Knuth because, of all the Old Masters of computer science, he is the one most interested in the relationship between computer programs and texts. Could we even suggest that a program is a text? It is, after all, a written expression of creativity. Certainly, when running, a computer game can be an artistic experience in the same way that a film, or a play can. But my concern here is not whether the program is art when it runs. I’m talking about whether its source code is a text. We could go down a bit of a rabbit-hole here about playful literary theories. Umberto Eco once reviewed a new Italian banknote as a work of art, describing it as a numbered, limited edition of engravings. But let’s concede that a functional document like a shopping list or a spreadsheet of student names is not a literary text. On the other hand, a recipe by a literary cook like Elizabeth David might be art, even though it also has function. Perhaps the relevant question is: can we experience a program as a text? Can we, in the fullest sense of the word, read it?

A cynical answer might be that if program source codes are texts, why can’t you buy them in a bookshop?

Inform: Past, Present, Future [Graham Nelson/Emshort]

(via Four Short Links)