wiki.paulswartz.net

Navigation

Recent site activity

Home‎ > ‎DivisionIII‎ > ‎

Introduction

Computers are everywhere; a majority of people outside developing nations have used a computer sometime in their life. Like the classes here in the Five College area, there is much theory about computing, based on mathematics. These theories are based on abstract models of computation, removed from the workings of the computers people actually use. These simplified models make theorizing about algorithms and data structures easier, but makes it more difficult for working programmers to use them. Working programmers do not work at the level of abstract models: they work with real languages and real computers. The theories have to be translated and modified to work in the real world.

There is not much written about what programmers are doing when they write programs. Literature, on the other hand, has much written about what it is that writers do. There are two general ways of studying literature. Literary criticism looks at specific works, interpreting them, studying them, deciding their value. Literary theory, on the other hand, is more philosophical. It looks at literature in general, how it functions, how people respond to it.

Most programmers have done the equivalent of literary criticism in computer science; it is easy to tell when a specific program does not work correctly. But philosophy? Only a few programmers have written about the act of programming; writing code in the languages that computers understand. There is even less written about what real-world programmers are doing when they transform solutions into code for real computers. It would seem that a solution to this lack would be an application of the concepts of literary theory to computer programming. As a student of both computers and of literature, I'm uniquely suited to make this attempt.

I decided that I would work in this little-studied area, the theory of programming, and especially how the study of literature could be brought to bear on its. What would a philosophy of programming look like? What would it do? The essays you are about to read are an attempt to answer that question.
I feel that I can bring something useful to light, something based on what programmers actually do, rather than on mathematical abstractions of what programmers do.

In this collection, I've chosen to take a more general and more theoretical approach. By taking a general overview, I feel I can cover more ground than if I were to delve deeply into a specific topic. Especially since so little is written in this area, I feel it was more important to see what is possible across the whole spectrum.

The lead-off essay is "The Hack as Form," an expanded version of an essay written for a class in literary theory. It works with Theodor Adorno's "The Essay as Form" to theorize about the form of the hack, a kind of computer code. Next is "White Boys' Code," which deals with questions of gender in programming. "Author()" is an application of the concepts of work and authorship from Roland Barthes and Michel Foucault to computer software. The fourth essay, "How do Programs Mean?" is an attempt to locate the meaning in works of code. In some ways, the next essay "A Tower of Languages" is an extension of that attempt, looking at issues of language choice and metaphor within software. Finally, "Poetics of Programming" is an analysis of programming from a poetic/aesthetic standpoint.

These topics are chosen from relationships I found in readings during my Division II. Computer programs and literature are both texts, and can both be treated as such. One can read programs as telling a story and use theories of narrative to analyze code. Literary criticism is a kind of philosophy, a philosophy of what literature does to and for writers and readers. Drawing these theories into the realm of computers is an extension past their boundaries, but an extension that I feel is justified. Not only can this extension bring new ideas to computer science, the intersection of literary theory and computer science can bring new ideas back to literature.

The essay is also an appropriate genre for these initial analyses . It's a try, an attempt, or as I argue in one of the essays, a hack at a philosophy. The essay as a form mimics the content of these essays. I've tried to write for two audiences: programmers and lay people. I want these essays to bring new ideas to light for working programmers, but I also want my writing to be understood by those without familiarity with programming. One of my biggest complaints with traditional literary theory is that it is incomprehensible to those without a background in theory. I wanted to use those ideas, but keep them accessible to everyone.

And without further ado, I present to you my Division III: Essays in Programs as Literature.

Paul Swartz
Hampshire College
April 26, 2007
paulswartz at gmail dot com