While the books are being shipped I took the opportunity to read Knuth's 1974 ACM Turing Award paper titled the same as this blog entry. The paper was written a decade before I was born. Should anyone find this topic interesting, I recommend reading the paper. Below I try to summarize the main argument however.
It is explained in the paper that the term art used to mean "something devised by man's intellect, as opposed to activities derived from nature or instinct." Basically what we nowadays usually call science was previously considered art. Later the two terms began to have more independent meanings. Science was now considered to stand for knowledge and art for the application of knowledge.
Knuth's arrives in a conclusion that science is knowledge which we understand so well that we are able to teach it to a computer, while art is something which we don't fully understand. The story tells how programming has transformed from being pure intuitive art to more of a scientific matter. We have progressed in making software, being now capable to proof program correctness and do meaningful measurements of the software development process.
Knuth tell us that making software is, however, both science and art. He states that his viewpoint of programming as an art is an aesthetic one. The main goal of his work as educator is helping people learn how to write beautiful programs. The following quote from the paper may be worth mentioning.
"My feeling is that when we prepare a program, it can be like composing poetry or music; as Andrei Ershov has said, programming can give us both intellectual and emotional satisfaction, because it is a real achievement to master complexity and to establish a system of consistent rules."
The paper talks about a number of other issues as well, such as of the importance of great programming tools and languages, and different programming styles.
In the end it is claimed that a programmer who views himself as an artist will enjoy programming and also perform better. I've never though of it that way. For me it is clear that should you enjoy your work for whatever reason, that alone will enhance the quality of the work. I don't certainly feel being an artist when I'm coding, but I certainly enjoy being the creative force, a god-like transformer of pure, abstract ideas to machine readable instructions, and see the machine obeying my commands (though in the bad days the machine just can't understand me and keeps segfaulting).