University of Georgia, University of Nebraska–Lincoln, University of Virginia
McMaster University, Communication Studies and Multimedia - University of Alberta, Philosophy and Humanities Computing - University of Alberta
Discussions of programming in the context of the arts and humanities are almost always constrained to practical matters—the technical dilation of the development of coded instructions for processing by a computer. As such, programming would seem to fall into that category of pre-critical skills necessary for the pursuit of some higher, more avowedly humanistic endeavor. What hasn't been addressed, are the ways in which programming itself might be conceived as not merely an interpretive, but a “literary” practice. Nor has much attention been paid to a suggestive, if radical converse: that writing might be viewed as a programming practice. In this paper, therefore, we take an extreme view and think of programming as writing and writing as programming. We believe the distinction between human-readable and machine-readable discourses—the usual axis upon which the difference between programming and writing is said to rest—obscures the crucial human-readable aspects of code. Code is written to be read and reread by the humans who create and maintain it. Programmers speak of “elegance” in programming style, and deride the unreadable “kludge.” Programming is sometimes intended to amuse and is often resplendent with jokes buried in comments, variable names, and control structures. Moreover, code is nearly always accompanied by some larger exegetical framework (the documentation) intended to illuminate its ways and means. For all these reasons, it is difficult to say how programming differs from the process of writing under the constraints of form, genre, and audience expectation. Writing, by a process of ludic inversion, may likewise be viewed as a form of programming. Creators of written artifacts seek to encourage the emergence of certain readerly patterns while discouraging the emergence of others. The rhetorician's art, therefore, consists in elaborating the manner in which texts may be manipulated for the purposes of constraining the range of alternative textualities available to the reader or hearer. This implies that texts are forever threatened with the exigencies of unintended effects—alternative formations that are the result of the text's position within a universe of discourse that is by nature beyond the control of any authorial agent. The traditional terms of writerly engagement—genre, association, metaphor, theme—are also, and perhaps even originally, the tools of the rhetorician seeking to gain some programmatic control over the complex valences of language and meaning. The author, to put it forcefully (if at the same time metaphorically), tries to program the reader. In this paper we provide a number of illustrations of the ways in which programming is a literate practice and writing a programming practice. This illustration leads up to Knuth's call for “literate programming,” which we will recast as a project particularly suited to humanities computing. Our argument takes the following general form: 1. In computing, programming is taught in text. This manifests itself in traditional practices from the “Hello, World!” trope to Perl Poems. We will survey a number of textual practices in programming and argue that these are not just playful oddments, but reflections of the centrality of reading to the practice of programming. 2. As important as the execution of code is to computing, it is the documentation of code that allows it to be maintained and used. Coding also happens in conjunction with other forms of writing from flow charts, specifications, to comments. Programming, like text, is not an isolated practice; it is an act that happens in a community and which must be maintained to have the desired effect. Therefore, programming is a form of dialogue with the machine, users, and other programmers. The textual practices that at first seem peripheral to programming are actually central to its professional practice. 3. Reading is the human parallel to machinic execution. When we read, we play with the text—performing an operation that uses the text as a script. When we write, we imagine and try to control the reception of a text. As an example one can look at the role of rhetorical punctuation and technique in scripting oral performances of written works. 4. The history of programming is connected to the history of formal languages and an attempt to write things that can be reliably interpreted. This goes back to Plato’s Phaedrus and concerns about the interpretation of texts that are detached from the oral dialogical support of an academy. In the philosophical search for a universal language that cannot be misinterpreted, philosophers and mathematicians developed the logic from which programming evolved. Likewise, one of the most fascinating debates today about code revolves around its ontological status as both text and machine. This is not just a theoretical debate. When people began to publish books that contained encryption algorithms, one side claimed that that portion of the book qualified as a machine (and was therefore subject to patent and export
77
restrictions). The more libertarian side wanted to claim that it was merely text (and therefore subject to laws allowing freedom of speech). Literary programming (or writing code) is a practice with a unique place in humanities computing. It is the purest form of the hybrid work (in a tradition from encoded texts to multimedia works) that is characteristic of our hybrid discipline.
REFERENCES Topics on Computer Programming. Cat's Eye Technologies. <http://www.catseye.mb.ca/esoteric/> Estelle. “Tampering with the Text to Increase Awareness of Poetry’s Art. (Theory and Practice with a Hispanic Perspective) LLC 11 (1996): 155–62. Donald Ervin. Literate Programming. Stanford: Center for the Study of Language and Information, 1992. Wall, Tom Christiansen, and Randal Schwartz. Programming Perl 3rd. ed. Sebastopol: O’Reilly, 2000. Jerome J. Radiant Textuality: Literature after the World Wide Web. New York: Palgrave, 2001.
If this content appears in violation of your intellectual property rights, or you see errors or omissions, please reach out to Scott B. Weingart to discuss removing or amending the materials.
In review
Hosted at University of Georgia
Athens, Georgia, United States
May 29, 2003 - June 2, 2003
83 works by 132 authors indexed
Affiliations need to be double-checked.
Conference website: http://web.archive.org/web/20071113184133/http://www.english.uga.edu/webx/