The creative nature of programing does not require special proof. Indeed, I may assert that in its creative nature programing goes a little further than most other professions, and comes near to mathematics and creative writing. In the majority of other professions, even when putting the tiger in the tank, we only tame the forces of nature. We simply use physical and biological phenomena, hopefully in a cleverly economical way, but without understanding their innermost principles. In programing, however, we go, in a certain sense, to the root. One of the theses of modern epistemology states that "We understand what we are able to program." This phrase vividly characterizes the maximalism of our profession ...I'm becoming more and more interested in the history of computing, a neat side effect of writing a paper that deals with Ershov, software development, and the Cold War. In a way, however, this interest is actually a return. Sometime in tenth grade I discovered the Jargon File; being, at that moment, holed up hermitlike in a Los Angeles apartment, I read the whole thing. This excited me so much that I decided to teach myself programming--but unfortunately, being cocky and overenamored of my intellectual powers, I started with C. I got through maybe the sixth chapter of the textbook and quit (It was Quicksort defeated me, I'm pretty sure). Since then I have written many shell scripts, but anything in a "real" programming language fills me with terror and paralysis.
A second group of aesthetic issues relates programing to its social and public functions. On first meeting and attempting to analyze a social phenomenon of grand scale (and the coming of the computer onto the historical scene is without doubt such a phenomenon) we search for historical analogies broad enough to give us a basis for extrapolation and prognosis. It is in this sense that we speak of the advent of the computer as a second industrial revolution characterized by the industrialization of intellectual work. Another analogy on the same scale may be offered for the profession of programing. The progressive expansion of software is, it seems to me, comparable in many ways to the phenomena set in motion by the invention of printing. The accumulation of books, each one embodying its author's view of the external world, broadened a social process of understanding. In the same way, programs and data banks accumulate informational and operational models of the world, and allow us not only to influence but also to predict the world's evolution, giving us in this way an unheard of power over nature.
To be a good programer today is as much a privilege as it was to be a literate man in the 16th century.
-Andrei Ershov, "Aesthetics and the Human Factor in Programing," May 1972
I can see now what it was that excited me so much about the culture the Jargon File describes. Like many children of the '90s, I experienced the entry of the computer into my life as a definite but completely irreversible event. All through the second half of the decade, the computer was there to play with or to work on--but it was not, as it was in the '80s, something that encouraged technical exploration. It was, purely and simply, an object of consumption, a glorified television. So the very malleability and creative energy of software engineering in the '60s and '70s--Unix, VMS, C itself--seemed to suggest the possibility of joining a priesthood of people who were "gurus" and "demigods" and who engaged with computing as sculptors with marble.
And then, of course, it wasn't just my failure as a programmer that drove me away from that path. It was what it had turned into: "geek culture" as it existed in 2002-2003, not yet on the verge of achieving complete triumph (as it did by the end of the decade), a suspicious, self-enclosed, self-infatuated, and elitist community that could never quite separate its contingent obsessions (anime, Joss Whedon) from its defining characteristics (say, curiosity). For a young humanities type, the relentless two-culturism was especially unbearable.
But now, as I read through the materials for this paper, I find out things I did not know at the time. John Backus, the inventor of FORTRAN, says that programmers in the '50s were just as elitist and self-enclosed; they were angry and incredulous that anyone could try to make programming into something other than pure machine-code hacking.
In retrospect, of course, the Jargon File itself contains more than enough of this: the references to "mundanes" and the elevation of Chinese food (Chinese food!) into a cultural archetype are not as far from Slashdot as I would have liked to think.
And then, on the other hand, there are texts like Ershov's, with their expansive and broad-minded view of what programming implies. It would be wrong to suggest that they point to the existence of a different path that the history of computing culture might have taken. In fact, this one was popular enough at the time that it was reprinted in several American electronics journals and cited in The Mythical Man-Month--if anything, it was part of the mainstream. Rather, a text like this shows the variety of self-definitions that were once available to participants in this barely adolescent field, some much more utopian than others. After the mid-'70s, it seems, roles became concrete and tacitly acknowledged. (Perhaps the Jargon File itself, codified as it was in the '80s, is a monument to this stage of the process.) It remains to be seen whether the complete commodification of programming now under way will reinforce this ossification--or undermine it.
Commodification has dramatically restructured the practice of programming. It's a common lament among those that enjoy the craft for its own sake that software libraries have eliminated most of the problem solving and creativity that Ershov is exulting in that passage.
ReplyDeleteThe analogy between books and collections of programs and data turned out to be unfounded -- the public interface provided by a code library puts a veil between the user and the knowledge that the library represents, whereas to use a book is nominally to acquire the knowledge it contains.
Libraries have had an immense practical benefit to be sure, but they're a major deviation away from the old religion of the bearded gurus.
Yeah, that's sad to hear. But I gather from some work published at the time that this was beginning to be the case in the '70s already.
ReplyDeleteDon't forget Kittler who writes that all epistemological literacy now should include one "human" and one computer language.
ReplyDelete