GEEK SUBLIME: THE BEAUTY OF CODE, THE CODE OF BEAUTY by Vikram Chandra. 2014. Graywolf Press. 236 pages.


In the closing paragraph of the thoroughly researched, magnificently integrated, (and awkwardly titled) Geek Sublime, Vikram Chandra writes, “My writing life and my life with computers, in spite of their differences, seem mirrored, twinned. Both are explorations of process, of the unfolding of connections. Both reward curiosity, dogged patience. And perhaps it is just the double presence that I cherish, of art and logic, of deep historical roots and newness … It has been pointed out to me that my fiction proliferates doubles, couplings, alter egos, layers within layers.”

This ambitious book is actually two books in one, twins of mixed parentage, midwifed by an author who epitomizes the “Yes, and” ethos.  Not content with an exploration of how computing software is developed and deployed in our hyper-networked world connected by layers and layers of programming code, Chandra pre-figures the modern state of coding with the palimpsest that is Sanskrit, the undying language of the ancients.  YES, software drives so much of the world we live in, AND there is a beauty to how the underlying code is designed.  YES, Sanskrit was designed by linguists and poets as a beautiful devavani  (“language of the gods”), AND it was coded as a systematic structure that on crumbling palm-leaf manuscripts would be “eternal, uncreated.”

The first third of Geek Sublime is focused on software development. But these pages will not teach you how to set up a website. Instead, they explore the innards of the system that enables the website (including a helpful set of binary logic gate diagrams that serves as a primer on how the digits “0” and “1” compute based on Boolean logic operators). More importantly, this introductory part of the book explores what makes the computer’s interior software landscape ugly or beautiful. Donald Knuth, the so-called “father of algorithms,” who wrote a wide-reaching, multi-volume, series titled The Art of Computer Programming, helps to contrast two types of code:

“Knuth remarked about the code of a compiler that it was ‘plodding and excruciating to read, because it just didn’t possess any wit whatsoever.  It got the job done, but its use of the computer was very disappointing.’”

“To get the job done—a novice may imagine that this is what code is supposed to do.  Code is, after all, a series of commands issued to a dumb hunk of metal and silicon and plastic animated by electricity.  What more could you want it to do, to be?  Knuth answers: code must be ‘absolutely beautiful.’  He once said about a program … that ‘reading it was just like hearing a symphony, because every instruction was sort of doing two things and everything came together gracefully.’”

For those who earned their programming chops in the last century (as I did), the references to The Art of Computer Programming, (as well as Kernighan and Plauger’s The Elements of Programming Style, Wirth’s Algorithms + Data Structures = Programs, and others) are a trip down memory lane.  There are even a few lines of code from computer languages such FORTRAN.  Although this bit of nostalgia is a bit of a kick for old-timers, perhaps the most important part of the first part of the book is the myth-busting section about computing’s macho culture.

This anthropological history opens innocently enough with a contrast of the singularly heroic “Einstein” programmer/priest who “understands the machine so well that he programs in machine code” and the plebian “millions of Morts who have benefitted from the computer revolution [and] produce awful, bloated, buggy software because they don’t know how the machine really works.

It’s as if Chandra is asking the reader to suspend disbelief and accord software and Sanskrit the “brother of another mother” sibling relationship.  The second third of the book, which superficially seems best suited to grammarians, slyly argues for a god-like machine metaphor driving both Sanskrit and software aesthetics:  “The systematic, deterministic workings of these rules may remind you of the orderly on-and-off workings of logic gates.  The Ashtadhyayi [a 500 BCE text authored by Panini, who in influential ways, was the father of ancient and modern linguistic theory and thus indirectly the father of computer languages] is, of course, an algorithm, a machine that consumes phonemes and morphemes and produces words and sentences.  Panini’s machine—which is sometimes compared to the Turing machine—is also the first known instance of the application of algorithmic thinking to a domain outside of logic and mathematics.”  While few will confuse Panini and Turing as brothers, their fraternity has enabled the creation of a seemingly infinite number of Sanskrit words and an infinite number of lines of code.  Like Srinivasa Ramanujan, these were truly men who knew infinity, and yet, unless we take time to read about their contributions, we hardly know them.

While a select population of readers would have known of Turing’s contributions to computing (the recent Hollywood biopic, The Imitation Game, is sure to have grown that small population size), few outside of India would have heard of Panini, (indeed, a Google search suggests that the panini grilled sandwich is more prominent than Panini’s grand Sanskrit).  Chandra introduces two more names into this fraternity of amazing anonymity: Anandavardhana and Abhinavagupta.

The chapters on Anandavardhana and Abhinavagupta are masterful.  The contributions of these two men are what A. K. Ramanujan would have called a sangam, or scholarly Sanskritic confluence.  While it can be a bit of a challenge to keep these two polysyllabic names straight, both beginning with the letter “A,” it helps to think of Anandavardhana as having produced the original code and Abhinavagupta as having done a code review: the former had written Dhvanyaloka to get at dhvani, the “soul of poetry,” and rasa, the “taste;” and the latter commented on Dhvanyaloka through the “role of memory.”  “Abhinavagupta asserted that all minds contain … ‘latent impressions’ left by one’s experiences and past lives; it is these impressions that are brought alive or manifested by dhvani.”  Just as a great chef’s food must be relished by a gourmand, the aesthetics of a poem are brought to life by a poetry aficionado.

Chandra uses his own twin lens as a software programmer who is also a writer of literary fiction to suggest that the confluence of technology and art is not only possible in this post-Renaissance-person age we live in, but also vital to life itself:  “So the locus of code’s dance is not only logic gates or the gleaming fields of random-access memory; code also moves within 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.”  Although the generalist of yore has, in large part, been replaced by modern-day specialists of particular nano-fields, the polymath can still bring together seemingly unconnected threads to make sense of what in the end is one system.  Those who will thrive in a world that is now analog, digital, AND increasingly quantum, will have learned to appreciate multiple states of being, simulating Schrödinger’s Cat who is both dead and alive at the same time, and channeling Shiva’s Dance of simultaneous destruction and creation

Now about that title: having written that “the very sounds and rhythms of language—which preexist meaning—contribute to our experience of rasa,” Chandra might have (re)considered the sound of Geek Sublime.  To this reader’s ear, the “k” in “geek” is rather harsh sounding, and when conflated with the second word, foretastes a kind of slimy engineering lubricant—just the opposite of the delectable dishes served up by this very palatable book.

Rajesh C. Oza is a Change Management consultant who also facilitates the interpersonal development of MBA students at the Stanford Graduate School of Busines

Share this: