Adults who have set aside imagination to delve into the world of reality often find themselves regretful at some later point in their lives. In fact, a large market thrives on these very feelings. People who give up the pursuit of their own innate talents are still given the opportunity to be creative, in the form of sewing and craft kits, home improvement and decoration, models, paint-by-number, rubber stamping and stenciling, and myriad other projects which usually include vague to extremely detailed instructions to be followed. While I tend to find these projects to be good in the over-all scheme of things (certainly they provide something better to do than watching television, for example), I don't believe many people would go so far as to call a paint-by-number image of puppies or a plastic snap-together model art. Code, which can also sometimes be considered to follow explicit "instructions," can (in a limited sense) also be compared to these things. As well, many things such as advertisements and billboards contain a great measure of creativity, but we do not generally consider these art. While what is art is ultimately subjective and up to the viewer, I do think society accepts a general idea of what is defined as art. I now present you with the question: Do you consider your copy of Windows 2000 to be art?
In the past few years, computers have played an ever-increasing role in most people's lives. For some, however, they have nearly become life. I speak of the individuals who eat, breathe, and sleep code. These are the type who fight over Linux distros and purchase shirts from ThinkGeek and Copyleft so that they can be recognized by fellow coders in public. They are the type who publicly lament their [sometimes] inability to acquire dates. These are hard-core Slashdotters and [less-so] K5ers, who preach the gospel that code is art, and hold their art form in the highest esteem. I have been quietly observing you for a while now. I have read your rants, your articles, and your commentary. I have been intimately involved with a programmer for over a year, and also have many other friends in the field. I have finally had enough of your silly ideas, though.
My beloved geeks-boys, programming is not art.
I know you will not take this well (or likely lying down). "Code is art, just like mathematics," you will say. "Code is creative, just like art" is another popular retort. "Art is whatever you think art is," is perhaps one of the most common answers I have read. However, do not expect any museums to be hanging the Linux kernel framed in a gallery anytime soon, and I will tell you why.
Quite simply put, code is a means -- not an end. A good analogy would be to compare the elements of code to a tube of paint. As a painter, I need a medium to create my work in. The tube of paint, like an element of code, has a specific purpose. Code instructs a computer to perform some particular action(s); paint covers a surface to create a picture. Both are tools for creating a larger work. They also possess infinite possibility. Code can be combined in as many ways as brush strokes and colours to create individual works of art or function. Yet the brush strokes themselves have little value until they are combined towards this higher function. Similarly, the code itself is without value (in an artistic sense) unless its function, or product, can be considered art.
That being established, many of the products of code are pure utility -- the exact opposite of most objects of art, even functional art. A programmer often has some problem or need which has to be solved, and seeks to solve it in the most efficient and resource-conserving manner. Art, on the other hand, takes ordinary objects (or unordinary objects) and embellishes them in such a way that serves no purpose other than to be aesthetically enjoyable. In a community of people which seems to generally scorn things that exist only for aesthetic, non-essential reasons (witness the bellyaching over graphics-intensive websites), I find this contradiction of ideas to be especially amusing.
Often, in the case for code being considered art, it is compared to a mathematical equation or a piece of poetry. In many respects this may be closer to coding than the visual arts are, but I feel my point is just as valid. The beauty of poetry does not lie in the arrangement or choice of the words alone, but from the meaning we derive from the entire work taken as a whole. A beautiful math equation is not beautiful because of how it is written, but because of the brilliance that it conveys to those who appreciate its meaning. Structure alone cannot justify art, but it is necessary to the creation of art. In both instances, if the poem or equation (or code) was not created in a way that accomplished what it was meant to do, then it automatically cannot even be considered as art. (Even the most perverse "abstract" art possesses a basic compositional movement, which is the foundation of what makes a piece "whole" and not just random colours on a canvas.) However, just because it is well-structured, does not automatically default it to be art. Ultimately, the state of being "art" is judged by the final product that the medium produces.
Now, I have seen programs that when run, I would consider art. Sadly, the majority are not. They are creations meant to service business or general needs, with little to no consideration given to aesthetics (beyond practical "ease-of-use"). Useful? Yes. Cool? Maybe. Art? No. My significant other has created some beautifully fascinating visual programs, which unlike paintings, were capable of morphing and changing before my eyes. I could watch them for hours on end. Unlike "problem-solving" programming, however, these programs were created solely for the purpose of being enjoyed. He used code to implement an artistic vision -- not to satiate a practical need. And it is not the source that is art. It is the gorgeous, multi-coloured graphics that dance on my screen which could be considered art. We are both artists, but we work in different media. My medium is paint and pencils. His is code. He is an exception, however -- not the rule. I wish there were more people channeling such creative, unique energy into programming.
I understand very well why programmers might feel the need to believe that their work is art. When you spend the bulk of your time creating something, of course we need to feel that it has been worthwhile, and not simply wasted effort. The difference between my examples of paint-by-number and coding, is that the individuals assembling models or paint-by-numbers do not do this as a livelihood. They are under no delusions about their occupation or hobbies. On the other hand, there is a large group of programmers that have found themselves well-paid positions within corporations, doing nothing but writing code day-in and day-out. Many of them go home in the evening to do more of the same. I will be the first to admit the draining, worthless feeling that often comes with working for an impersonal corporation who often does not have any concern for your creative health. For a group of people often associated with a dislike for big business and government, it must be extremely difficult to work for an organization, which if it was not their employer, they would most likely despise. (Any Microsoft employees here?) Even as a hobby, it must be disappointing to humour the idea that perhaps the product of all your creative energy and effort is not art (but in fact, something quite plain and ordinary). It is a feeling similar to the sentiments of a long-suffering man, who can only deal with the constant blows of bad luck he is dealt by saying to himself, "There must be some greater purpose that I have endured this misery for." This is by no means a new idea; I would say it is nearly as old as mankind itself.
While code may not be art, it can be artistic. And the products of code can certainly be art. If you're feeling like you're not accomplishing much, then take the initiative to create something new, interesting, and original. Use code to do something no one has done before. Amaze me. Excite me. Make me want you. But please -- stop making claims that simply well-written code in itself is art. Us real artists are not impressed -- in fact, some of us are a smite miffed. And if you start showing up at coffee shops wearing berets, dark glasses, and a goatee, I'm going to start looking into a career change.