The motivation for these essays came out of my background in computer science and literature. I've been programming since third grade, in a string of different languages, from QBasic to Python. I've also enjoying reading, having learned to read at an early age. When I started studying literary theory in college, I started to notice I could apply it to computers. The computer science classes I took as part of my Division II focused either on learning different languages, or on the theory of computation (how fast algorithms ran, how much memory they needed). No one talked about the theory of programming, of what programmers were doing when they wrote programs. As I studied more literary theory, this question only became more interesting. Many people had thought and written about the answers to those questions for literature; no one had done so for computers. I tried to work this idea into my Division II work. I wrote a paper comparing the hack to the essay (a work expanded in this collection as "The Hack as Form") and another comparing writing literature to programming using epigrams from Alan Perlis. This has been a fruitful project. It would be difficult for it to have been barren: theory can analyze nearly anything effectively. Programs are texts, which easily allows for comparison and juxtaposition with literary texts. However, not all of these essays have been fruitful in finding direct equivalences between literature and programming. That's not a negative; finding that literary texts and computer-ary texts are different is also an interesting conclusion. I also hope that these conclusions are useful to the lay person, giving them some insight into the act of programming. My biggest insight after writing these essays has been the value of thinking philosophically about programming. Too often, programmers focus on the concrete, day-to-day actions. Thinking about what they do helps them to write more effectively. Despite the name, computer science today is closer to an art than a science. Thinking philosophically about writing has produced grand theories about what writers are doing when they create works of literature. For example, theorizing about narrative structure gives writers more insight into what makes a narrative 'work.' I hope that theorizing here about programming can help programmers figure out what makes a program 'work' in the same way. This project could not have been completed without the help of many people, and any list is inevitably leaves people off. Despite this, I'd first like to thank my committee, Jaime Davilla and Jeff Wallen. They have both been so helpful, answering questions and giving me feedback on these essays as they've developed. I'd also like to thank my mom, Lucy Swartz, and Anna Landes Benz for reading drafts and giving me feedback on what wasn't making sense. However, these are my essays and I'm responsible for them: any mistakes are of course my own. Finally, I'd like to thank the various groups of people that kept me from going crazy while working: my family; Mods 1, 15, and 66; Red Scare Ultimate; Hampshire College EMS; and Sticks & Balls Pool Club. Thanks for reading, Paul Swartz
|