Critical Code Studies
= an approach that applies critical hermeneutics to the interpretation of computer code
"Critical Code Studies (CCS) is an approach that applies critical hermeneutics to the interpretation of computer code, program architecture, and documentation within a socio-historical context. CCS holds that lines of code 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. Critical Code Studies follows the work of Critical Legal Studies, in that it practitioners apply critical theory to a functional document (legal document or computer program) to explicate meaning in excess of the document's functionality, critiquing more than merely aesthetics and efficiency. Meaning grows out of the functioning of the code but is not limited to the literal processes the code enacts. Through CCS, practitioners may critique the larger human and computer systems, from the level of the computer to the level of the society in which these code objects circulate and exert influence.
Rather than creating a language separate from the work of programmers, Critical 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, reusability, and modularity. My own critical approach will stress meaning, implication, and connotation, though not in terms of a self-contained system of meaning but with respect to the broader social contexts. While a computer scientist might argue for or against various pragmatic approaches, scholars of CCS will analyze the extra-functional significance of the code.
Just as developing new media technologies requires the collaboration of artists and programmers, the area of CCS will require the artful combination of knowledge of programming languages and knowledge of interpretive approaches. These analytic projects will require programmers to help open up the contents and workings of programs, acting as theorists along with other scholars, as they reflect on the relationships between the code itself, the coding architecture, the functioning of the code, and specific programming choices or expressions, to that which it acts upon, outputs, processes, and represents.
Like literary analysis, CCS is an interpretive process rather than an instrumentally proscriptive or solely descriptive process. While other branches (lines of flight) of code studies may be concerned with pragmatics, CCS focuses on meaning, read from the often collaborative and certainly iterative performance that is coding. If as Wendy Hui Kyong Chun has announced, "software is ideology" notenote note
In Control-Freedom (2006), however, she seems to retreat from this claim. On the one hand, she writes, "In a formal sense, computers understood as comprising software and hardware are ideology machines". However, she follows this claim by saying, "This parallel between software and ideology, however, flattens ideology to its similarities to software, and elides the difference between software as code and software as executed program". Code can, by my argument, operate as ideology when analyzed as written instructions (following Kress and Hodge) and as executed program (following Chun). note 2note we might also say computer code is ideology, yet an ideology that is doubly hidden by our illiteracy and by the very screens on which its output delights and distracts. While open source embodies a particular ideology that makes code accessible for analysis, CCS will analyze more than open source programs. CCS will look broadly at choices in paradigms (such as object-oriented approaches) and closely to specific lines of code.
Critical Code Studies can draw upon the works of scholars who have begun to interpret code, particularly Matthew Fuller's enthralling, forthcoming collection entitled Software Studies . Fuller's text, discussed in more detail below, offers a lexicon for the interpretation of software and its role in society. If Critical Code Studies names a set of approaches, or an interpretive attitude, to code, Software Studies offers "a handbook of supplements to some of the key standard objects of computer science, programming and software culture" (Introduction) Indeed, Fuller's sense of software relates well to perspective of CCS, as he argues that "software can be seen as an object of study and an area of practice for kinds of thinking and areas of work that have not historically 'owned' software, or indeed often had much of use to say about it." Software Studies gestures towards a more formalized practice of (and quite a few tools for engaging in) Critical Code Studies." (http://www.electronicbookreview.com/thread/electropoetics/codology)