The Humanities and Critical Code Studies (HaCCS) Lab opened this summer at the University of Southern California with the specific goal of developing the field and fostering discussion between the Humanities and Computer Science. Current members include USC faculty and students and a host of affiliated scholars from other institutions, including and international advisory board. The HaCCS Lab sponsored its first conference this summer and will be sponsoring other get togethers both on campus and online. Central to its mission is to develop common vocabularies, methodologies, and case-studies of CCS, while promoting publications in the field. Mark Marino, who teaches in the USC Writing Program, is the Director of the new center. He was nice enough to agree to an interview during which he explains what he means by Critical Code Studies, how it relates to other humanistic approaches to studying digital culture, and what he thinks it contributes to our understanding of Code as a cultural practice and as a critical artifact.
What do you mean by critical code studies?
The working definition for Critical Code Studies (CCS) is "the application of humanities style hermeneutics to the interpretation of computer source code." However, lately, I have found it more useful to explain the field to people as the analysis of technoculture (culture as imbricated with technology) through the entry point of the source code of a particular digital object. The code is not the ends of the analyses, but the beginning.
Critical Code Studies finds code meaningful not as text but "as a text," an artifact of a digital moment, full of hooks for discussing digital culture and programming communities. I should note that Critical Code Studies also looks at code separated from functioning software as in the case of some codework poetry, such as Mez's work or Zach Blas' trasnCoder anti-programming language. To that extent, Critical Code Studies is also interested in the culture of code, the art of code, and code in culture more broadly.
At this nascent stage, I also find it useful to point out the plurality and variability of the methodologies that have been already used to analyze code whether in the Critical Code Studies Working Group, at our two conferences, in the HASTAC Scholars Forum, at MLA, and elsewhere. These preliminary readings demonstrate that Critical Code Studies is not an approach but a wide range of approaches that use code as a starting point for a larger discussion. Scholars seem eager to talk about code and are experimenting with ways to unpack it.
Critical Code Studies answers a call from N. Katherine Hayles and others for media specific analysis by taking up for analysis an aspect of digital objects that is unique to the computational realm. Back in 2005 and 2006 when I first began talking to people about code, there weren't many examples of critics, working then under the title "new media," who discussed code, which struck me as unusual since it's such a rich semiotic realm. There just weren't enough critical readings that demonstrated for how to talk about that component of the work. At the time, I was working on my dissertation and was trying to produce readings of conversation agents, or chatbots. That led me to write that initial essay in electronic book review.
For my work, the "critical" component is also crucial because it evokes "critical theory." I don't want to limit the types of theory or philosophy that can be applied to code, but I do want to push for critiques that challenge, that remain sensitive to the socio-historic contexts of the code, the institutional investments, the ideologies and ontologies of code. Code is already studied in the contexts of computer science, while the humanities have something unique to offer in the form of critical analysis and explication or, if you will, exegesis.
Your published definition of the field stresses the "extra-functional significance" of code. Why separate out meaning from effect? Why not study the relationship between significance and function?
The "extra" in "extra-functional" does not mean "outside of" or "beyond" but rather "growing out from." Function is certainly an important component of the way code signifies, but it is important to distinguish CCS from the study of code that concentrates primarily on function. Perhaps more important to this moment of CCS is to discuss the difference between an interpretive approach that seeks implications and meaning rather than a utilitarian approach that is primarily concerned with making code function. Again, while I agree with you that the two aspects are inseparable, the search for meaning goes beyond denotation into the connotations, resonance, implication, evocation, et cetera.
How much technical skill and knowledge is required to look at code critically? Is this a potential space for collaboration between the humanities and the technical fields?
It is the contention of CCS and the newly formed Humanities and Critical Code Studies lab that everyone should have at least some literacy in how code works, whether at a base-level understanding of algorithms, some basic knowledge of programming principals, and/or a basic ability to parse code in whatever language. That said, the HaCCS lab is working to foster dialogue and collaboration between the Humanities and Computer Science scholars because more engaged critical readings come from the fullest understanding of the culture out of which that code emanates. Without that dialogue, CCS could become a kind of imperialist project, subject to the same kinds of over-writing, misinterpretation, and misreading that such relationships engender.
In my own readings, I tend to engage in lengthy discussions with programmers, including the authors of the code, so that I can get a more nuanced understanding of how they perceive the code. Again, part of what I'm after are the layers of meaning that code has as it circulates through different discourse communities in different contexts. I look forward to courses in Critical Code Studies co-taught by Humanities and Computer Science faculty to students from across the university looking at code together using the lenses from all their disciplines.
At the same time, CCS tends to attract the programmer-scholar, the hacker-theorist, critics who build things. Being versant in both programming and critical theory helps these critics to apply the theoretical approaches without doing violence or overwriting the ways in which coding conventions are understood within programming circles.
Is the goal to develop an "aesthetics" of "good code"? Is critical code studies a kind of formalism?
No, Critical Code Studies is not primarily focused on "good code," although the discussions of the aesthetics of code or Don Knuth's formulation of "beautiful code" offer an opening for a conversation that will be familiar to Humanities scholars, namely who defines the aesthetics of beautiful code, why have they chosen this criteria, and what alternatives have been surpassed. Such discussions often turn to programming anomalies such as the obfuscated code contests. Nonetheless, the discussion of aesthetics makes a fundamental notion of CCS clear: code is not a pure, inevitable formulation. As Knuth said in his Turing Award lecture, programming is an art.
As to the second question, Critical Code Studies is not formalist, but instead requires a deeply contextualized reading. On one of the earliest pages we published on CriticalCodeStudies.com, you will find a list of ways to read code that includes reading code against the factors of its creation, it funding source, its composer's work, its implementation and circulation in cultural as well as material contexts such as the platforms on which it operated, and the other code with which it interacts. Critical Code Studies focuses on examining the code in its historical moment to better understand the culture out of which it developed.
Mark Marino is the Director of the newly launched Humanities and Critical Code Studies (HaCCS) Lab at USC, named for a field he initiated in 2006. He is the Director of Communication for the Electronic Literature Organization (http://eliterature.org), as well as a writer and critic of experimental interactive forms, including "a show of hands" (http://hands.literatronica.net) and the LA Flood Project. He blogs at Writer Response Theory and is Editor of Bunk Magazine, an online humor zine. He currently teaches for the Writing Program at USC. He is currently working on two collaborative book projects using CCS methodologies. His portfolio can be found here.