THE PASZ.COM BLOG

Friday, September 13, 2002

Coding as an Art Form

While I'm on the topic of Stephen Wilson's book, I wanted to touch on another issue that interests me: the question of whether coding can be considered an art form.

"Programming is a combination of rigid and open processes. Certainly at some point, the concepts must be reduced to the small steps the computer can deal with. But before that point, however, there is much room for open experimentation. Also, the structuring of the small steps can itself require considerable creativity."

A function can be elegant or inventive; it can also be ugly and spaghetthi-like. But is it possible to call a piece of code "beautiful" or "artistic"? While I don't think that you're ever going to see sheets of source code hanging up in a museum, I do think the answer to this question is yes.

This being said, there are several important clarifications to point out. First, I'm talking about the code itself, not the end product -- the software program that is created by the code. It is quite possible to conceive of a very aesthetically pleasing program that was generated by ugly, sloppy code. There is a change that occurs when code is compiled, that is akin to translating a novel into another language. Code that looks great in Java may not necessarily be optimized to run well on the machine. For example, most programmers would agree that a recursive function is more elegant than a simple loop. Yet, recursive functions are generally slower on most platforms. In fact, the fastest code usually has loops that have been "unwound" (i.e. broken out step by step). It is even possible to argue that the needs of the computer are inherently non-artistic, and attempts to create art in code are at best a waste of time, and at worst liable to introduce bugs and performance problems. Perhaps the creative aspects of programming that Wilson describes, are mere concessions that we must make because we, as humans, are unable to think in pure ones and zeros. Finally, it is difficult to discuss a thing's aesthetic merits without putting it in the context of the audience. Yet most code doesn't have an audience beyond the programmer herself and her co-workers (and possibly an AI that is compiling the code?).

Despite these caveats, I think there is a benefit to thinking about programming aesthetically. I plan to delve further into this topic in future entries.

Thursday, September 12, 2002

The Black Box

I've been reading a book called Using Computers to Create Art by Stephen Wilson (1986). While the technical contents are very obsolete, the author's observations are still relevant. One of Wilson's goals is to make computers more accessible to people with artistic inclinations. He feels that right-brained people need to become more involved in the evolution of technology by contributing creative designs, producing social commentary, and even developing entirely new art forms that put the latest technology to use. Left-brainers, the ones who currently spearhead technological development, tend to obfuscate things with unnecessary complexity, and can become disconnected from the aesthetic and moral issues that impact our society. He compares modern engineers to the priests of Ancient Egypt, who used black boxes adorned with hieroglyphs as props in their mysterious rituals. “They are so accustomed to ministering to the ordained purposes of the box in the ordained ways that they have lost touch with other possibilities for it. They have also lost the ability to talk to people outside the sacred caste.”

This goes to show that stereotype that computer programmers have poor communication skills is incorrect. They merely spend most of their time speaking a different language from everyone else!
Wilson's analogy should resonate with anyone who's spent time learning the arcane "hieroglyphics" of DOS or UNIX.

This is a first entry just to see how things work. There's a lot more neat stuff to see at my website.