Monday, November 16, 2009

From Codework to Working Code: A Programmer's Approach to Digital Literacy

~Proposal Submitted for Digital Humanities 2010 Conference~ (website)

What does it mean to be digitally literate? Obviously it entails a basic familiarity with commonly used technologies, so that one may navigate the technological life world that has permeated nearly every aspect of the human one. One aspect of this knowledge is the recognition of computer languages, syntactic forms, and passages of program code, even when they have been taken out of their operational context for use as literary and rhetorical devices. In addition to the infiltration of the abbreviated language of email and text messaging into mainstream print media, it is now also commonplace to encounter programming keywords, symbols, operators, indentation, and pagination entwined with natural, non-technical, mother tongue expressions. Codework is the term associated with the literary and rhetorical practice of mixing human and computer languages (Hayles; Raley; Cramer). Types of codework span from intentionally arranged constructions intended for human consumption that do not execute on any real computer system, to valid expressions in bona fide programming languages that are meaningful to both human and machine readers. Examples of the former include the work of Mez (Mary-Anne Breeze) and Talon Memmott, of the latter, the work of John Cayley and Grahan Harwood (Raley; Fuller). Rita Raley notes, however, that of the popular electronic literature of 2002, there is “less code per se than the language of code.” In addition to its infusion for literary effect, program source code may be cited in scholarly texts like conventional citations to explain a point in an argument. Although it is more common to encounter screen shots of user interfaces, examples of working source code appear on occasion in humanities scholarship. This study will briefly consider why working code has been shunned in most academic discourse, then identify the types and uses of bone fide code that do appear in humanities scholarship. Its goal is to suggest ways in which working code – understood both as code that works, and as the practice of working code – plays a crucial role in facilitating digital literacy among social critics and humanities scholars, and demonstrate through a number of examples how this effect may be achieved.

The first argument in favor of studying computer code in the context of humanities scholarship can be drawn from N. Katherine Hayles' methodological tool of Media-Specific Analysis (MSA). Probing the differences between electronic and print media when considering the same term, such as hypertext, requires comprehension of the precise vocabulary of the electronic technologies involved. A second, more obvious argument comes from the growing disciplines of Software Studies and Critical Code Studies. If critical analysis of software systems is to reveal implicit social and cultural features, reading and writing program code must be a basic requirement of the discipline (Fuller; Mateas; Wardrip-Fruin). A third argument, which is the focus of this study, is reached by considering the phenomenon of technological concretization within computer systems and individual software applications. According to Andrew Feenberg, this term, articulated by Gilbert Simondon, describes the way “technology evolves through such elegant condensations aimed at achieving functional compatibilities” by designing products so that each part serves multiple purposes simultaneously (217). The problem is that, from the perspective of a mature technology, every design decision appears to have been made from neutral principles of efficiency and optimization, whereas historical studies reveal the interests and aspirations of multiple groups of actors intersecting in design decisions, so that the evolution of a product appears much more contingent and influenced by vested interests. The long history of such concretizations can be viewed like the variegated sedimentation in geological formations, so that, with careful study, the outline of a technological unconscious can be recovered. The hope is that, through discovering these concealed features of technological design, the the unequal distribution of power among social groups can be remedied. Feenberg's project of democratic rationalization responds to the implicit oppression of excluded groups and values in technological systems by mobilizing workers, consumers, and volunteers to make small inroads into the bureaucratic, industrial, corporate decision making.

For computer technology in particular, digital literacy is the critical skill for connecting humanities studies as an input to democratic rationalizations as an output. Working code replaces the psychoanalytic session for probing the technological unconscious. Many theorists have already identified the free, open source software (FOSS) community as an active site for both in depth software studies and for rich examples of democratic rationalizations (Fuller; Yuill; Jesiek). Simon Yuill in particular elaborates the importance of revision control software for capturing and cataloging the history of changes in software projects. As as corollary to this point, it can be argued that concealed within these iterations of source code are the concretizations that make up the current, polished version of the program that is distributed for consumption by the end users, and from which the technological unconscious may be interpreted. However, even when they are freely available to peruse in public, web-accessible repositories, these histories are only visible to those who can understand the programming languages in which they are written. Therefore, it is imperative that humanities scholars who wish to critically examine computer technology for its social and cultural underpinnings include working code - as practicing programming - in their digital literacy curricula.

References

Cramer, Florian. “Language.” Software Studies: A Lexicon. Ed. Matthew Fuller. Cambridge, Mass: The MIT Press, 2008. Print.

Feenberg, Andrew. Questioning Technology. New York: Routledge, 1999. Print.

Fuller, Matthew. Introduction to Software Studies: A Lexicon. Ed. Matthew Fuller. Cambridge, Mass: The MIT Press, 2008. Print.

Hayles, N. Katherine. “Print is Flat, Code is Deep: The Importance of Media-Specific Analysis.” Poetics Today, Volume 25:1 (Spring 2004): 67-90. Print.

Jesiek, Brent K. “Democratizing Software: Open Source, the Hacker Ethic, and Beyond.” First Monday, Volume 8:10 (October 2003). n. page. Web. 5 Oct. 2008.

Mateas, Michael. “Procedural Literacy: Educating the New Media Practitioner.” On The Horizon. Special Issue. Future of Games, Simulations and Interactive Media in Learning Contexts 13.1 (2005): n. pag. Web. 21 Oct. 2009.

Raley, Rita. “Interferences: [Net.Writing] and the Practice of Codework.” Electronic Book Review 8 Sept. 2002. n. pag. Web. 17 Oct. 2009.

Wardrip-Fruin, Noah. Expressive Processing: Digital Fictions, Computer Games, and Software Studies. Cambridge, MA: The MIT Press, 2009. Print.

Yuill, Simon. “Concurrent Version System.” Software Studies: A Lexicon. Ed. Matthew Fuller. Cambridge, Mass: The MIT Press, 2008. Print.