You are using an outdated browser.
Please upgrade your browser
and improve your visit to our site.

Is Computer Coding an Art?

Coders are 'makers.' But what exactly are they making?

Columbia Pictures

Despite its diminished status in nearly every area of life, art—writ large—is still the highest measure of achievement, the most superlative of compliments. The “art” label is appended to show that a commercial product has transcended its industrial creation or that some higher, more thoughtful intelligence is at work. “The Wire,” for instance, is often compared to a Dickens novel while every other Twitter misogynist, it seems, claims to be practicing “performance art”—each of them a Marina Abramovic, doling out works in 140-character tranches. Notably, these comparisons only go one way. No one ever praises a novel by saying it's like a really good Tumblr.

A recent entrant to the “But is it art?” Olympics is computer programming. Coding, some of its practitioners claim, is an art form. This argument often hinges on the notion, promulgated by prominent industry figures like the venture capitalist Paul Graham, that coders are “makers.” They produce remarkable things—essays crafted out of the programming languages C# or Javascript that, like a literary essay, depend on elegance, precision, and a knowledge of form. Their creations sometimes affect humanity on a massive scale. According to this calculus, the operating system designed by Steve Wozniak for the Apple II might be as important as Macbeth

For the novelist Vikram Chandra, who spent years working as a computer programmer and consultant, this comparison holds some appeal. But, as he argues in Geek Sublime: The Beauty of Code, the Code of Beauty, his first nonfiction book, it's a rather facile argument, one that incorporates some unacknowledged biases, including the American tech industry's particular blend of nerdy arrogance and latent machismo. Yes, Chandra acknowledges, “coders—like poets—manipulate linguistic structures and tropes,” he says, and coders also “search for expressivity and clarity.”

Geek-sublime

But the virtues of what might be called “beautiful code” are different than those of beautiful art. “Beautiful code,” he writes, quoting Yukihirio “Maz” Matsumodo (the creator of the Ruby programming language), “is really meant to help the programmer be happy and productive.” It serves a purpose. Art, by its very nature, serves no purpose. Code is practical and logical. Art is about affect, associations, and emotional responses—part of what Chandra calls dhvani. The term, developed by Anandavardhana, a ninth-century Indian literary theorist, derives from a word meaning “to reverberate.” Dhvani is resonance or “that which is not spoken,” as Chandra says. Code is explicit. Art can be irrational and leave some of the most important things unsaid.

If it's not apparent already, this isn't your typical tech book. Despite its thin profile, Geek Sublime is unusually expansive and rich. Its concerns are deeply heterodox: the difficulty and joys of coding, Sanskrit linguistics and literary theory, free market ideology, British colonial history, Indians in Silicon Valley, the writing of Chandra's first novel, suppressed Hindu sects, women's diminished status in the tech industry (in India, the situation is markedly better). But there are surprising relationships here, and Chandra elucidates them with a supple intelligence. The book ultimately resembles what Chandra describes as his plan for his first novel: “I want a certain density that encourages savouring. I want to slide warp over woof, I want to make knots. I want entanglement, unexpected connections, reverberations.” Connections, reverberations, a density of tangled feeling—he wants dhvani

The “Is it art?” debate is, in the end, too simple for Chandra. At the risk of butchering the programmer's idiom: It's a binary question, but the answer is in base 10.  Now a professor and successful novelist, coding has become something of a hobby for Chandra—and a refuge, too. Here he “can see cause and effect immediately. Write some code, and it either works or it doesn't.” When it doesn't, he tinkers and runs it again. And again.

Writing code, he experiences some of the satisfactions of art-making but also a break from its existential torment. Code is difficult but it isn't alchemical. “The stark determinisms of code,” he says, provide “a welcome relief from the ambiguities of literary narrative.” Yet as with writing fiction, he sometimes finds time distending and contracting, whole hours evaporating as he tries to uncover the source of a bug in a piece of software over which he's labored. There is also a sense of utter enchantment. He marvels that code is “uniquely kinetic” and that it can “materialize logic.” “It is unlike anything else,” he says. “Programmers need to claim the extraordinary nature of what they do.”

This line stands in contrast to much of Chandra's consideration of the tech industry, which he gives a merciless, but fair, drubbing. In his former career, during which he only met one female programmer, Chandra was continually surrounded by abrasive, rude, monomaniacal, emotionally obtuse colleagues. “They ad-hominemed, flamed, name-called, dismissed, despised,” he says. “Not to put too fine a point on it: These guys were assholes.” This might not be the sort of crowd that needs to be told their work is more extraordinary than they already think it to be. But Chandra also notes that the particular American culture of programming, which he finds so distasteful, isn't universal. The brogrammers of Palo Alto, he implies, don't understand the nature, much less the impact, of what they do. They falsely take on the label of artists because they see art as another algorithm, a set of instructions to be implemented. They also do it because it is like a bellows to the fire of their ego. 

In his recent New York Times review of Geek Sublime, James Gleick writes that C.P. Snow's famous “Two Cultures” thesis—that the arts and sciences have become separate in intellectual life, to society's detriment—remains true. But, Gleick writes, “The fault lines have shifted.” While it's still important for, say, a book reviewer to know about chemistry and physics, he or she should also know something about computers and, perhaps, coding. I also thought of Snow's argument while reading Chandra's book. Gleick is smart to invoke it and assess its application today. But the discussion of Snow deserves a codicil. Snow's critique was largely civic—learn about science and the arts to be a better cosmopolitan subject, to be, in that cardboard phrase, well-rounded. The current divide between our cultures rests more on questions of politics and economics. As software continues to “eat the world,” as investor Marc Andreessen termed it, power and money will continue to accrue to the people who control, understand, or finance these systems.

Lately, calls to learn how to code emanate from anyone from President Obama to NBA forward Chris Bosh. These inducements don't reflect Snow's notion of cultural enrichment or of bridging a lamentable intellectual divide. Instead, they are mostly premised on the idea of achieving success in the post-industrial economy or of acquiring an inchoate kind of twenty-first-century literacy. Neither of these is wholly a bad thing. But being literate in Clojure and Python (two popular programming languages) does not mean that a person understands what's happening in the machine or its role in society. Chandra quotes a pseudonymous message board user, who says that although he's on his way to his second advanced degree in computer science and is a successful developer working in Microsoft's .NET framework, he doesn't know how computers work. The basics of computing—particularly how the code he writes is translated by the machine into ones and zeroes that are then executed as instructions—are a mystery to him. The same might be said of many of us: We are adept at using our smartphones but would clam up if asked to explain the basics of packet switching.` (A foundational Internet technology, packet switching allows data to be diced into small groups, or packets, sent through a network, and reassembled at their destination.) 

This deeper layer of knowledge matters, too. Chandra shows how culture can't be divorced from technology, because the two exist in a relationship of mutual influence. But what further distinguishes Chandra is that he recognizes why it all matters. It's important to understand our technological culture not so that one can do well in the information economy or because it makes one's life richer. No, it's to understand how society works—its power structures, the politics of its industries, its histories of colonialism and deprivation, the consequences of which remain in the form of inherited social biases and British legal systems (that pre-digital code). Learn how to program, fine, but learn also how your new dating app's security vulnerabilities might expose women to harassment or how the startup that just hired you can afford its new office because a cash-strapped city offered an absurd tax rebate.

While focusing more on issues of gender and cultural discrimination, Chandra's book displays this kind of literacy. Sensitive and wise, Geek Sublime is, in the best sense, aware of itself. And if the tech industry acquired this quality as well, it might finally become worthy of all the hosannas gathering at its feet.