Editors’ Choice: Excavating Code — An Archaeological Record of Software Development

Code is often a difficult object to approach from a humanistic perspective.  In some cases, scholars have approached code as if it were simply a piece of literature, generally coming to the conclusion that code makes for very poor literature (Kücklich, 2003).  More often, however, computer code is not seen as a text in the traditional sense of a completed manuscript, but rather as an assemblage of many culturally situated units of meaning, akin to how Michael McGee (1990) theorized text.  To a much greater extent than most other texts, code requires technical expertise along with critical expertise in order to understand.  There are numerous ways of approaching a piece of code, many of which have been discussed here on Play the Past.  One of the most useful ways of looking at code is from a functional, algorithmic perspective.  By critiquing the way that code enables and constrains certain actions, we can come to understand some of the underlying assumptions behind the a game.  We can also come to understand a piece of software through the context provided by developer comments written in the source files themselves.

In this case, however, I’m interested in looking at code not as a way of understanding the piece of software of which it is a part, but rather as a way of understanding the history of those involved with its production.  In this context, code provides an archaeological record of the goings on of programmers, computer hardware, and standards organizations.  Some of the events that this record shows are easily discernible once you have access to the source code.  For example, a quick comparison between the code for Wolfenstein 3D and the code for Quake shows a number of the changes that took place over the space of four or five years.  Some of these merely reflect the way that both computer programming in general and Id’s own software had advanced over that space of time.  For instance, the graphics code in Quake lacks the large blocks of assembly code that are fairly common in Wolfenstein’s rendering system.  Other changes, such as the structuring of the code in Quake around Doom-style WAD files is more indicative of Id’s policy toward modding than any kind of technological advance.

Source: Excavating Code: An Archaeological Record of Software Development

This content was selected for Digital Humanities Now by Editor-in-Chief based on nominations by Editors-at-Large: