Critical Code Studies 2
Published by Mark Marino April 4th, 2005 in CCS.I’d like to expand on and develop an early post suggesting Critical Code Studies with a preliminary definition and some thoughts.
Critical Code Studies: An approach to Code Studies, which applies critical heuristics to the interpretation to computer code, program architecture, and documentation.
CCS holds that the textons (the lines of code) of a program are not value neutral and can be analyzed using the theoretical approaches applied to other semiotic systems in addition to particular interpretive methods developed particularly for the discussions of programs.
Rather than creating a language separate from the work of programmers, Code Studies will build on pre-existing terminology and analysis used within the programming community. Much of the current examination of code seems to revolve around efficiency of code, reusability, and modularity. This critical approach will stress meaning and implication.
Though some in the area of CCS may have an in depth knowledge of programming, many analyses will involve the collaboration of theorists and programmers. This approach will require programmers to help open up the contents of programs with the theorists and as theorists as they work to reflect on the relationships between code, coding architecture, and other programming choices, or expressions, to the content of the work.
Like literary analysis, CCS would be an interpretive process rather than a proscriptive or descriptive process. Other branches (lines of flight) of Code Studies may be concerned with pragmatics, CCS focuses on meaning, read out of the often collaborative and certainly iterative performance that is coding.
Coding ideologies, such as Open Source programming, will also be important, although CCS will analyze more than Open Source programs, though access may be more limited.
I do not want to confuse Code Studies with the study of Code used as literature (as in Perl Poetry), although this is certainly related. The focus in not on making code that has aesthetic value and additional meaning but a view of code as already having meaning beyond its functionality since it is already a form of symbolic expression and interaction.
No doubt, there have already been examples of Critical Code Studies. Let us compile a list and explore how this area of research might develop. (I’m also interested in ties to theorists who may have already articulated similar approaches.)
I agree with this and your last post that CCS is something many of us already feel we are doing, to some extent. I also agree that looking for past examples is a good next step - followed perhaps by some manifesto / call for papers to assemble a collection of approaches by different people.
A metaphor: As an art historian might discuss the impact of materials / tools / practices on the resultant canvas or fresco, so the CCS-inflected scholar’s knowledge of programming languages, IDEs and target platforms could be brought to bear in discussing the creative negotiation of resultant code art.
Within the discipline of English Literature, Medievalists are the scholars who have most impressed me with being both materially conscious and ready to discuss materiallity in a cultural context - and I find this very appealing. Of course, for Medievalists, scarce material artifacts are a condition of their scholarship, and those specific media instances are some of the few sources from which to extrapolate cultural context….
While it isn’t much of a snowclone, I Googled Critical * Studies. In addition to an LII enry on Critical Legal Studies I found a CFP for Critical CyberCulture Studies and a journal precis for Critical Discourse Studies. It strikes me that these names are placeholders for a kind of disciplinarity or school of thought that is very difficult to focus beyond “X is meaningful and should be analyzed.”
Perhaps we might do better following “Deconstruction” or “Media Specific Analysis” and working on naming and describing a kind of *practice*…? For me, I’m imagining specific analytic moves, deeply rooted in New Critical/Structuralist techniques but worked out differently in a code context. But then again, we don’t have to choose between a broad CCS on the one hand and specifying a Code Analysis approach on the other - we can do both….
I agree with you, Jeremy, that these names are not necessarily meaningful as practical approaches, but I see it more than “X is meaningful and should be analyzed.” The idea is more “x” has meaning in excess of its functionality and warrants analysis on more than an aesthetic of efficiency.
When I have spoken to programmers and computer science professors about this idea they ask a lot of questions about what a critical approach would mean. Our discussions suggest to me once again, that the approaches of semiotic analysis common to critical theory in the humanities are foreign to many of the aspects of programming. So, a movement towards consideration of the code as a semiotic unit that can be explicated, interpreted, read, and perhaps misread, seems a significant change.
In conversation, Douglas Thomas suggested a hypothetical situation of investigating facial recognition software and noticing that it read into its system nose shape, eye proximity, skin hue, and other elements that were analogous to those used in the production of racial categories. Is this software racial profiling? This is an example that involves investigating the structure of the system. I imagine there are even closer readings that would come out of specific analysis of lines of code and particular subroutines, etc.
Code, on one level, is different than literature, film, and visual art and more similar to legal code, in as much as the text is functional. More than legal code, computer code is presumed to be unseen by human eyes. Except in cases where the computer generates code that its programmers and users never see, computer code is often seen by other programmers who must rework it. Further, even if the code is only seen by the first programmer, it still strikes me to be a semiotic expression. More importantly, and I hope this is not too vague, I think there are implications in the way a code tries to perform a function that both bears the imprint of cultural assumptions, ways of knowing, gender/race/sexuality bias, economic philosophies, etc. This does not begin to get at the more computer-specific issues.
I like your notion of analytic moves from a variety of theoretical approaches, but I also think it’s important at an early stage not to limit the approaches but to gesture towards the field.
But as you suggest, let’s start working out some examples (and finding previous examples) of how this might work out in practice.
Jeremy just mentioned to me (and correct any of this as you wish Jeremy) that CCS may need to address the issue of the metaphor of the computer language.
In spoken languages, living oral languages, the division between linguistics (operationality) and literature is clear. In the case of code and programmers the relationship is different and less clear. This is the next place to address our attention.
Hi,
Do you know of TOPLAP http://toplap.org/, which is an acronym for (Temporary|Transnational|Terrestrial|Transdimensional) Organisation for the (Promotion|Proliferation|Permanence|Purity) of Live (Algorithm|Audio|Art|Artistic) Programming?
They performed at the Read_me Software Art Festival in Aarhus, Denmark in August 2004 - and they do live coding, that is coding concerts that is performed live, projected on screens so the coding is part of the performance, not ‘behind’. I quote from their manifesto:
“Live coding is not about tools. Algorithms are thoughts. Chainsaws are tools. That’s why algorithms are sometimes harder to notice than chainsaws.” http://toplap.org/?node=ManifestoDraft
For more see their website and other examples of code-related software art at www.runme.org.
Soren,
Thanks for this link. A lot of my early work has been to distance myself from code-made-into-art in order to emphasize the code-as-art side of Critical Code Studies. I certainly agree with the manifesto, and might go further to add that “Code is a Rhetoric” as Linda Williams put it to me.