Can Critical Code Studies overcome the divide between technology workers and technocultural theorists?
Code matters. It matters to the many people who program it, and to those who allow themselves to be programmed by it. It makes a difference how the code is written. It makes a difference on which platform it is executed. It makes a difference who is reading it and what they know about programming. It makes a difference how the programmer imagined the ones who would read her code. Code matters. Its materiality is immaterial when discussing the ways in which segments of code circulate through culture. Those segments become matter for debate, take on a life of their own, escape the cage of the CPU and find their way out the front gate and over fences into backyard barbecue conversations over who's got the best language, Python or Java, or who's got the most elegant code. These fragments communicate differently in communities of hackers, lawyers, managers, politicians, and pundits. Code matters. It is a commercial good, operating in a collaboratively authored, technocultural economy whose programmers are - even for the same code - celebrated and derided, fungible and irreplaceable, congratulated and scape-goated, rewarded and re-assigned by those who exchange it, who haggle with it and hack it, in the marketplace of processes.
In whose domain does code lie? This question suggests and provokes a turf war that threatens to dissolve Critical Code Studies even as it is forming - a war whose drums sound in some of the comments in the Week 1 discussion. It is the type of question that incites insecurity, that is designed to separate would-be collaborators, that leads to retreat behind disciplinary bulwarks. Of course, programmers claim code for their own. They stand with one foot propped on the felled beast of their own creation, yet the cultural theorists are now also arriving with their taxonomies, eager to claim the carcass. Although Douglass calls these straw men, in the discussions of Week 1, working group members began to sort out into one of the two camps. Programmers tended to begin their comments, "As someone who has spent many hours wrestling with code," while cultural critics began theirs, "I am not a programmer, but." (We two fell into the latter camp.) The cultural critics seemed quick to impose meaning on the code, while the programmers expressed concern that the code was being misrepresented. An over-simplification, perhaps, but one based in a potentially threatening division. In discussion of the Annakournikova virus, this rift emerged as some critics focused more on the sexual politics while others on the specifics of the technology. The division begged the question: can a critic describe cultural significance in code without misrepresenting it?
In the second week of the Critical Code Studies Working Group, Jeremy Douglass steps between the two parties and gestures to the surrounding jungle where thousands of wild animals roam in the presence of trackers from a continent of disparate tribes, be they intellectual property lawyers, developer communities, educators, or political pundits. He suggests that code is already being read in a host of discourse contexts and calls for the group to proceed on a safari for further examples of code-reading in the wild. One of the safari-goers remembers a proscription against the poaching of wild cultural texts. Is there a way out of the stand-off that involves moving beyond the binary of technology workers and technocultural theorists?
Jeremy Douglass has been involved with Critical Code Studies since its inception as a blog post on Writer Response Theory, the collaborative blog written with Mark Marino and Christy Dena. In fact, his notion of examining a work of interactive fiction through "the implied code," or the system functions and operations a user imagines is driving a piece of software, serves as a bridge between external and internal examinations of digital works. (This idea seems to re-emerge inverted in Week 2 with the discussion of "the implied reader" of the code.) Douglass has worked with Noah Wardrip-Fruin and Lev Manovich to develop the SoftWhere Studies Workshop (UCSD 2008) and lead the Software / Platform Studies track of Digital Arts and Culture 2009. His selection to lead the second week of the working group, therefore, was hardly arbitrary.
The Question of Contexts
For his chief example, Douglass raises the Climategate scandal, the recent global warming kerfuffle in which the scientific evidence for global warming was contested, in part, on the basis of the software used to gather the information. The discussions even in mainstream media, as Douglass noted, went into the code layer, as two different videos used the code (including the comments) to support opposing viewpoints on the scandal. Through this gesture, Douglass highlights not so much the rhetoric of the code but the rhetorical use of source code, not perceived as some isolated sign system to be discussed solely as a set of structural insights about a digital object, but instead as a cultural object in its own right, that can be - and more importantly has already been - taken up to make various, even opposing, points.
During the week's discussion, Hugh Cayless wonders aloud whether "we risk letting the layers of context obscure our view of the code." That comment follows a passage where he discusses the CRU code and asks, parenthetically, whether it matters if we know the programmer's gender. Here Cayless has put his finger on the linchpin of Critical Code Studies. One caricature of CCS calls for the superimposition of critical theories and social context on functional sign systems. Although Cayless does not make this claim explicitly, embedded in his comment is the suggestion that there is a view of the code that is not mediated by context. There is a sense that if we just stopped speaking about contextual issues, such as the history of the code, the code itself would become the subject of our inquiry or perhaps, to borrow a phrase, res ipsa loquitur, the code would speak for itself. Of course, Cayless is correct, too, as those discussions of context in Week 2 overtake the conversation, as they often do, in places where the Week 1 discussion stayed more focused on particular lines of code.
Most instructive is how Douglass responds to this critique. Interestingly, he does not move into a discussion of the code devoid of social context but instead takes up the issue of how the identity of the programmer matters, becomes meaningful, in debates about the program. "I strongly suspect however," Douglass replies, "that the identity of the programmer matters in the public debate - either as an imagined construct, or as a real (although still imagined) person." Douglass' mention of the "public debate" reminds us that code has many more audiences than just the programmers trying to make the code function.
Here, Douglass and Cayless are dancing on either side of the edge of the fault Douglass articulates at the start of his week, as he alludes to Stevens and Browning, dividing "the code programmer with a mind of winter and the code poet with a heart too easily made glad." Though Douglass has worked to trouble the binary of practical programmer and ethereal theorist, the question about the overshadowing of context is a sign that the binary is not merely an ideal but an abstraction of real differences in approaches to technoculture.
At this point, in a world of overbold pronouncements (i.e., There is no software), it is comparatively restrained to pronounce: There is no code outside of context. A number of recent interventions have been pointing to this axiom, most notably, Wendy Chun in her Week 4 presentation and Matthew Kirschenbaum at MLA 2011 and in the HASTAC Scholars forum. These scholars speak to the impossibility, the folly, of interpreting code separated from hardware, operating systems, compilers, et cetera. However, at the risk of evoking the very culture wars Douglass was pacifying, let us make a further pronouncement that it is impossible to consider code disconnected from its programmers, versioning, functioning, development history, and circulation through culture. Within Cayless' objection is a suggestion that there are aspects of the code's creation that do not matter, and Douglass' response suggests that the conditions of the code's production are inextricable parts of the material of its meaning.
How wild is wild?
The wisdom of Douglass' intervention is to push aside Week 1 debates on whether code reading is viable by gesturing toward the code critiques that are already underway. His initial role-call of "code readers" includes a litany of craftsmen, customers, tricksters, amateurs, and lawyers. Within this group, he perceives a complex of motives:
They treat code archives as business lead opportunities, and post online shopping cart exploit code as a way of fighting the man. They claim that code legibility is akin to a fundamental human right - or they claim that the act of changing code itself is akin to a mortal sin against the almighty creator.
However, a survey of the code-reading examples produced by the working group reveals a less ambitious list than Douglass had first called for. An initial response from Sheldon Brown turned the working group's attention to corporate collaborative authors of code, which led to a discussion of the corporate programming cultures and their impact on the coding practices, bound, as Evan Buswell notes, to particular languages, conventions, style, and paradigms, including object oriented programming. David Shepard then took up the historical reasons OOP has taken such a hold in corporate culture, and Julie Meloni contributed her view of corporate adoption of PhP. Other code readings in the wild proposed by the discussants include court cases, the Unix source code, code for a bot to "game" aid from the UN FreeRice website, Mozilla's Firefox, the P2P bit-torrent client Azureus, the security-testing tool Angry IP Scanner, and the DRM-cracker QTFairuse.
These examples and anecdotes fit roughly within two loose categories, those created by cultural theorists and those performed by practitioners documenting aspects of programming culture. It is the latter group that inspires the majority of the observations and asides in the week's discussion as respondents comment on the corporate coding cultures and histories of programming languages and paradigms.
In the end, Douglass leads the Working Group to discover a space outside of the strictly practical and the strictly interpretive. Although the safari did not catch many glimpses of code discussions in the wild, the call to look for them incited a discussion about the cultures of programming and programming languages, discussions that are well underway, although perhaps not yet on the syllabi of either CS (Computer Science or Cultural Studies) courses. The axis between cultural theorists and programmers turns out to be those who document their experience within the culture of programming.
Works Referenced in Week 2 Discussion
Black, Maurice J. The Art of Code. 2002. Print.
Chun, Wendy Hui Kyong, and Thomas Keenan. New Media, Old Media: a History and Theory Reader. New York: Routledge, 2006. Print.
Dixon, Rod. When Efforts to Conceal May Actually Reveal: Whether First Amendment Protection Of Encryption Source Code and the Open Source Movement Support Re-Drawing The Constitutional Line Between the First Amendment and Copyright, 1 COLUM. SCI. & TECH. L. REV. 3, (Sep 28, 2000) http://www.stlr.org/cite.cgi?volume=1&article=3
Douglass, Jeremy. "Command Lines: Aesthetics and Technique in Interactive Fiction and New Media." Literature and Technology, University of California, Santa Barbara 2007. Dissertation.
-- "Enlightening Interactive Fiction: Andrew Plotkin's Shade." Second Person: Role-Playing and Story in Games and Playable Media. Pat Harrigan and Noah Wardrip-Fruin, eds. MIT Press. 2007
"EJ-ing." DAC Literary Arts Extravaganza. University of California, Irvine, Dec 2009.
SoftWhere 2008. 2 day conference. Co-chaired with Noah Wardrip-Fruin. Software Studies Initiative, University of California, San Diego, May 2008.
"What Counts as Code to Criticize? Interpreting flow control and natural language programming." Critical Code and Software Studies session. Digital Humanities 2009. University of Maryland, College Park, June 2009.
"Flowchart Art: Programming Literary Flow." Mapping Process in New Media Landscapes. ELO. Vancouver, WA. May 2008.
Kay, Alan C. The Early History of Smalltalk. 1993. Web. 23 Feb 2010. http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html
Kelty, Christopher M. Two Bits: the Cultural Significance of Free Software. Durham: Duke UP, 2008. Print.
Loui, Ronald P. "In Praise of Scripting: Real Programming Pragmatism" Computer 41.7 (2008): 22-26. Print.
Miles, Russell. Aiming for Cartoon Code First 7 Apr 2008. Web. 11 Mar 2011 http://blogs.oreilly.com/headfirst/2008/04/aiming-for-cartoon-code-first.html
Neeman, Ziv. Building Profit-Power into This Electronic Brain. Diss. Columbia University, NY, 2004. Web.
Noble, David F. Forces of Production: a Social History of Industrial Automation. New York: Knopf, 1984. Print.
Plotkin, Andrew. 2000. Shade. http://www.eblong.com/zarf/zweb/shade/
Rappoport, Avi. Amazonfail: How Metadata and Sex Broke the Amazon Book Search. 20 Apr 2009. Web. 8 Feb 2010. http://newsbreaks.infotoday.com/NewsBreaks/Amazonfail-How-Metadata-and-Sex-Broke-the-Amazon-Book-Search-53507.asp
Raymond, Eric S. Unix and Object-Oriented Languages. 2003. Web. 23 Feb 2010. http://catb.org/~esr/writings/taoup/html/unix_and_oo.html
Short, Emily. 2006. Basic Screen Effects. http://sw.cs.wwu.edu/~sanders5/Game_Programming/Inform/Extensions/Emily%20Short/Basic%20Screen%20Effects
Snow, C. P. The Two Cultures. New York: Cambridge UP, 2008. Print.
Spolsky, Joel. The Law of Leaky Abstractions. 11 Nov 2002. Web. 23 Feb 2010. http://www.joelonsoftware.com/articles/LeakyAbstractions.html
Verity, John W., and Evan I. Schwartz. Software Made Simple. BusinessWeek 30 Sept. 1991. Print.
Walker, Jill. Feral hypertext: when hypertext literature escapes control. Proceedings of the sixteenth ACM conference on Hypertext and hypermedia, 27 Mar 2005.
Wall, Larry. "Perl, the First Postmodern Computer Language Lecture." Linux World. 3 Mar. 1999. http://www.perl.com/pub/1999/03/pm.html
Wardrip-Fruin, Noah, and Pat Harrigan. Second Person: Role-playing and Story in Games and Playable Media. Cambridge, MA: MIT, 2007. Print.
Wimsatt, William K., and Monroe C. Beardsley. "The Intentional Fallacy." Sewanee Review, vol. 54 (1946): 468-488. Print.