Re-Engineering: Geek SublimeSeptember 29, 2014
The Op-Ed column is a space for readers and contributors to sound off about Art Practical's content and to contribute to the larger conversation about Bay Area art which Art Practical supports.
Re-Engineering is a series of op-ed articles and real-time conversations co-produced by Art Practical and the Gray Area Foundation for the Arts that invites constructive dialogue between the region's art and technology sectors. By bringing together seemingly disparate voices from both communities, these conversations underscore the creative impulses, capacity to take risks, and desire for positive social impact that these groups have in common.
"Re-engineering" is a periodic series of Op-Eds that address art, gentrification and the new tech economy. In this installment, we are pleased to bring you an excerpt from the conclusion to writer Vikram Chandra’s new non-fiction book, Geek Sublime: The Beauty of Code, the Code of Beauty, in which he posits that coders strive for the same clarity and eloquence as writers in crafting their form. In this selection, Chandra elaborates on what programmers mean when they speak of the eloquence of code, comparing it to a work of literature. Such a comparison requires looking at code not just as a formal language to create and run programs but as something greater, the effects of which far exceed the language which originated them. As he writes, “[…] programs are not just algorithms as concepts or applied ideas; they are algorithms in motion. Code is uniquely kinetic. It acts and interacts with itself, with the world.”
This excerpt is presented in conjunction with Chandra’s participation in the panel Small (or Large) Machines Made of Words, which Art Practical is hosting as part of the Open City/Art City Festival at Yerba Buena Center for the Arts.
The panel will explore how poets and programmers perceive beauty in their respective forms, how processes of mechanization alter and produce their own kinds of affect, and what happens when efficiency and redundancy become aesthetic categories. It will take place on October 4, 2014 from 2 to 3:30 pm in the Forum room at YBCA; Chandra will be joined by Tom Comitta, Michael Widner, and Matt Sussman. Please see the Open City/Art City schedule for more details. We hope you will join us!
Vikram Chandra, excerpt from Geek Sublime. Copyright © 2014 by Vikram Chandra. Reprinted with the permission of Graywolf Press, Minneapolis, Minnesota. We thank the editors at Graywolf for their assistance in making this contribution possible.
The simple on-off operations of a computer’s logic gates might mislead one into regarding that computer as a large and overly complicated abacus. But, as Ada Byron pointed out:
The Analytical Engine, on the contrary, is not merely adapted for tabulating the results of one particular function and no other, but for developing and tabulating any function whatever. In fact the engine may be described as being the material expression of any indefinite function of any degree of generality and complexity.1
In 1936, in his famous paper “On Computable Numbers,” Alan Turing announced, “It is possible to invent a single machine which can be used to compute any computable sequence,” and then showed how—at least in principle—to build such a machine.2
“Any indefinite function,” “any computable sequence”—that simple word any holds here a vastness perhaps equal to the universe, or your consciousness. Whether the universe is an abhasa—a simulation—or whether self-awareness can be produced by recursive algorithms are questions open to debate, but one thing is certain: the ability to materially express computable sequences and therefore move the world is unprecedented and extraordinary. “Before ten years are over, the Devil’s in it if I have not sucked out some of the life-blood from the mysteries of this universe, in a way that no purely mortal lips or brains could do,” Ada Byron wrote to Charles Babbage, with an inkling of the uncanny powers they were beginning to glimpse. “The Analytical Engine does not occupy common ground with mere ‘calculating machines,’” she wrote elsewhere.
It holds a position wholly its own. . . . A new, a vast, and a power- ful language is developed . . . in which to wield its truths so that these may become of more speedy and accurate practical applica- tion for the purposes of mankind than the means hitherto in our possession have rendered possible. Thus not only the mental and the material, but the theoretical and the practical in the mathemati- cal world, are brought into more intimate and effective connex- ion with each other. 3
This is why comparisons and analogies between programming and older disciplines can obtain only to a limited extent. When programmers say what they do is just like what writers do, or gardeners, or painters, the error is that they aren’t claiming enough, the fault is that they are being too humble. To compare code to works of literature may point the programmer toward legibility and elegance, but it says nothing about the ability of code to materialize logic.
What programmers want to do in their investigations of the “eloquence” of code, I think, is analogous to what Anandavardhana and Abhinavagupta tried to do with poetic language in the Sanskrit cosmopolis: to understand how the effects of a language can escape language itself. The Indian theorists were also dealing with a formal language tightly constrained by rules, a stable formal language that had been analyzed only in stylistic terms, with catalogs of figures and reckonings of correctness. The rasa-dhvani theorists saw that this understanding of beauty was incomplete, and so they tried to formalize the processes of literary affect, to investigate how poetry moves across the borders of bodies and selves, and to understand how consciousness uses and is reconstructed by poetry, how poetry expands within the self and allows access to the unfathomably vast, to that which cannot be spoken.
Programmers also use formal languages, but programming is sui generis. It is unlike anything else. Programmers need to claim the extraordinary nature of what they do. Most discussions of the beauty of code I have encountered emphasize formal qualities of language—simplicity, elegance, structure, flexibility—what a riti- or style-inclined theorist might have described as the qualities of the code. But programs are not just algorithms as concepts or applied ideas; they are algorithms in motion. Code is uniquely kinetic. It acts and interacts with itself, with the world. In code, the mental and the material are one. Code moves. It changes the world.
Marcel Duchamp, who achieved chess-master rank at the royal game, observed in an interview:
A game of chess is a visual and plastic thing, and if it isn’t geomet- ric in the static sense of the word, it is mechanical, since it moves; it’s a drawing, it’s a mechanical reality. The pieces aren’t pretty in themselves, any more than is the form of the game, but what is pretty—if the word “pretty” can be used—is the movement. Well, it is mechanical, the way, for example, a Calder is mechanical. In chess there are some extremely beautiful things in the domain of movement, but not in the visual domain. It’s the imagining of the movement or of the gesture that makes the beauty, in this case. It’s completely in one’s gray matter.4
Code is also a mechanical reality, but it does not stay merely within one’s gray matter. One does not have to merely imagine its movements and gestures. We already live in a world that abounds with computers, and we already filter experience through software—Facebook and Google offer us views of the world that we can manipulate, but which also, in turn, manipulate us. The embodied language of websites, apps, and networks writes itself into us. One of the pioneers of the newly minted field of Aesthetic Computing, Paul Fishwick, points out that digital watches and DVRs surface the abstract computer-science notion of “finite state machines” in their menus—each time you press the “mode” button you move from one state to another:
The way in which our thinking is changing culturally surfaces deep abstract concepts in computing to us as we use these devices: from number, to information structure, to process . . . It is not just that the finite state machine is embedded within the watch’s silicon, but also that the human wearing the watch becomes aware of this virtual machine’s structure and its components through the expe- rience of using the watch. The state machine changes how the wearer thinks, even though the wearer is probably unaware of the formal mathematical notation of a state machine. The watch’s software internals become embedded within our psychology and culture. 5
So the locus of code’s dance is not only logic gates or the gleaming fields of random-access memory; code also moves within the millions of humans who encounter its effects, not just programmers. Code already shapes the world of the non-programmers and embeds itself into their bodies, into their experience of themselves, into lived sensation and therefore the realm of experience and aesthetics. Soon, in the near future, we will live inside an experience mediated by computers; all those science-fiction fantasies of eye- glasses that can layer data over what you see, of new means of sensing the world through android extensions of our bodies, all of these are already possible, they already exist.