Art:

Art is a diverse range of human activities in creating visual, auditory or performing artifacts (artworks), expressing the author's imaginative or technical skill, intended to be appreciated for their beauty or emotional power.

Software:

Computer software, or simply software, is a part of a computer system that consists of data or computer instructions, in contrast to the physical hardware from which the system is built.

I think that Software is Art. I think that Software can be a Thing of Beauty.

Think about those statements for a minute. The act of writing code is being likened to creating a piece of art. Software development is not generally associated with the more traditional disciplines related to art such as painting, drawing or music, but in some aspects Software is no less creative. A well written piece of software that expresses the developers intent and solves the problem in the best possible way is a Thing of Beauty. Sometimes software is closer to engineering with the best practices, methodologies and design patterns, but sometimes software is closer to art, with the varying creative inputs, conflicting emotions and the unknown end goal.

The artist has his paintbrush, the developer’s has his editor, both are their respective tools’. Both are used to express an idea in a manner for the world for consume. Both are used to transfer the imagination of the person into a concrete visualization that someone else can see.

Both start with a blank canvas, their familiar tools and palette to hand, striving to translate some clean and beautiful conception held clearly in mind's eye, through an imperfect medium, into something lovely desired by others.

Stated like that, we can consider Software is Art. It is the expression of an individual’s answer to solve a problem and the solution is no less imaginative or beautiful than a painting or piece of music. The end result of software development will usually result in something that is elegant and emotionally evocative, either to the viewer of the source code or the user who interacts with the finished product, and the inherent beauty (or lack there of) will be on display for all to see.

Is this not an Artwork? Is Software not therefore Art?