As I See It: The Programmer as Artist
May 27, 2008 Victor Rozek
It has been variously described as art, science, a teachable skill, a creative process, and an exercise in logic. And because it can boast of having all those properties, the nature of programming remains as elusive as good government. The challenge in pinning down the essence of programming is that no single descriptor is exact or sufficient. Almost anything you can say about it elicits a “yes, but. . .” reaction. Yes, programming has artistic elements, but how artistic is an accounting program? Yes, IT began as Computer Science, and during the formative years programmers wore lab coats and coded in machine language, but higher level languages have made programming much less mysterious and much more accessible. Yes, programming is a teachable skill, but not everyone can learn it, and not all those who learn it do it well. Yes, it is a creative process, but not if you work for a programming factory where pre-existing modules are cobbled together to create one-size-fits-all solutions. Yes, programming is an exercise in logic, but then again, there is a lot of spaghetti code out there. The first time I did any coding, I remember thinking that programming was the equivalent of translating a book from one language to another. The original text being the specification for the program, the program itself becoming the translated text. But that, too, is inadequate. Without the compiler, the program is “unreadable.” So there is a second “translation” from which the code (and the programmer) profits. Dependence on the compiler is one of the arguments against the proposition that programming is art. If code requires an assist from the compiler–and relies on the speed of the processor, the sophistication of the graphics card, and the user friendliness of higher level languages as well–at what point exactly is the “art” actually created? And how many contributors are doing the creating? But the same could be said for photography. Photographers get a huge assist from their cameras, but the good ones are no less artistic for that. Besides, very few people ever see the code, and fewer still can fully appreciate it. What we see, of course, is what the end user sees. Users, however, don’t much care how elegantly a program was written or how clever the algorithms it uses are. Most software is judged not for its elegance, but for its functionality. Does it solve my problem; does it have the features I need? As a result, business applications are valued for utility, not artistry. Think of utility as the canvas, and the user interface as the painting. Business applications may make a glorious canvas, but nobody looks at a painting and says “great canvas.” If the interface is not striking enough, the program’s creator may be the only one who knows how artistic his work really is. Which is not to say that practical software must, by definition, lack aesthetics. Even utilitarian items can be artistic. Witness the Franklin stove: simple, beautiful, useful. But there is another genre of programs–the ones designed to entertain (like the World of Warcraft) or to create alternate realities (like Second Life). Here, the standard for judging artistry changes. Is the program challenging; is it clever and captivating; are the graphics entertaining and visually pleasing; does it excite; is it compelling enough to be addictive? For centuries, art was confined primarily to painting, sculpture, and architecture. By contrast, the computer revolution is very recent and one of its unintended consequences may be to expand the parameters of art to include not just the fantastic graphic images computer technology can generate–like digital representations of fractals, for example–but the thing itself, the software and the technology that produces them. Arguably, there is more artistry in an enlargement of a computer chip than in a cubist painting by Braque. It is interesting to speculate what artistic giants would say about software. How would Michelangelo respond to an avatar floating through an exact replica of the Sistine Chapel in Second Life? Or how would Leonardo react to a computer-aided design system that allowed him to model one of his many inventions? Or what might Dostoevsky say if he could move paragraphs at the click of a mouse? It would, I suspect, seem like alchemy–the perfect convergence of science and art. As for the nature of programming, it unarguably begins as a teachable skill. But a lot of people take piano lessons and not everyone becomes Paderewski. The link between skill and art is this: With mastery, a skill has the potential of becoming an art form. Amish furniture is proof. Science, of course, still makes essential contributions to the programmer as artist, particularly in the development of potent languages and processor technologies. And according to at least one notable scientist, the lines between art and science naturally blur with proficiency. Einstein believed that: “After a certain level of technological skill is achieved, science and art tend to coalesce in aesthetic plasticity and form. The greater scientists are artists as well.” Indeed, creativity remains the essence of the coding process; and logic is the glue that holds it all together. But whether software can aspire to be called art is largely a matter of context, intention, and talent. Does the programmer have free reign to create? Does he have the time to take exquisite care with his creation? Is the outcome achieved in a daring and distinctive manner? And is the code elegantly written? (Actually, “elegance,” the unofficial standard for smartly written programs that mandates simplicity and humble resource requirements, may no longer be as relevant since memory and storage are cheap and plentiful.) But just when you think you can glimpse the essence of programming, there’s wetware. Modeled after biological systems, specifically the central nervous system and the human brain, wetware developers are tap-dancing on the frontiers of machine consciousness. To be sure, the creation of a sentient machine is highly problematic but, if it were possible, what would we call the creation of consciousness? We have no word for it, but whether we used science or art as the standard, it would surely rank among the greatest achievement in the history of humankind. Distributed consciousness is another way of looking at the Internet that, according to Wired, now supports “1 billion CPUs; 8 terabytes of traffic, with two million emails per second.” What exactly is that? Science? Most assuredly. Art? Maybe, on such a grand scale that none of us can step back far enough to see the entire picture. Certainly the Internet is more than the sum of its parts. Like Star Trek’s Borg, we are becoming neurons of a digital consciousness that stretches across the globe. But during those moments when I’m able to retrieve some esoteric bit of information with a few clicks of a mouse, it seems to be more magic than science or art. The accelerated pace of computer-directed change suggests that emerging technologies such as the Internet and wetware are hastening a computer-assisted evolutionary process that has acquired a life and direction of its own. Already it is becoming increasingly difficult to live in modern society without a computer and a cell phone. So who or what is in charge? Arguably, software. Writer and philosopher Elbert Hubbard said: “Art is not a thing; it is a way.” Although he lived in a time before computers, he provided an uncanny insight into the nature of software. It has become the way we work, the way we communicate, and the way we entertain ourselves. It is the way the future is hastened and the past is preserved. What other art form could lay claim to all of that? In A Man without a Country, Kurt Vonnegut says this about the arts: “Practicing an art, no matter how well or badly, is a way to make your soul grow, for heaven’s sake. Sing in the shower. Dance to the radio. Tell stories. Write a poem to a friend, even a lousy poem. Do it as well as you possibly can. You will get an enormous reward. You will have created something.” To that list, Vonnegut could have easily added: write a program. RELATED STORY As I See It: Soothing the Savage Programmer
|