I've talked a lot about programming of late so I think it's time to flip hemispheres for a bit, and talk about art. Years ago I took a course on 20th century art; each week we'd visit a gallery. Over about eight weeks or so we looked at all the modern art movements from impressionism to the present day. For the most part I got it, but towards the end we took in the Turner Prize nominees at the Tate Britain.

I can see artistic value in most creative pursuits but I just can't seem to get along with modern contemporary art. It's preoccupation with personality and situation seems to me purposefully exclusive. Maybe I just don't get it; or maybe getting it is optional. If nothing else this journey broadened my personal definition of art:

"Art is any human creation that provokes an emotional response."

Although often referred to as a science, I believe programming is an important artform. In my opinion it's a creative exercise as culturally valid as writing, painting or sculpture. I'd go further and say it is the artform that is defining our generation. Now how's that for modern art.

I'm not making this observation because I code - my background is in illustration; I've done "proper art". I'm making it because the artistic aspect of programming is not generally recognised. Donald Knuth, Turing award winner and author of the Art of Programming, explored this distinction in the 70's. He ventured that if programming can be completely automated then it could be called a science, but for the most part it can't. Programming requires conscious thought and creative solutions.

Art has always had a symbiotic relationship with science. Advancements in science continue to offer new tools and media for artistic expression. The greatest artists of the Renaissance were not just exceptional painters, but great engineers too. It's no great surprise that many great innovations have come from applying the wisdom learned in one discipline to the media of another.

In a modern software development or web agency environment employees get pigeon-holed as either a designer or a developer. Very occasionally you'll come across a "technical artist" or "creative technologist" but on the whole job descriptions prohibit the crossing of disciplines. These days programming, especially programming for the web, and in particular programming for the Flash Player, blurs the line between art and engineering, left brain and right brain, media and code. Spanning disciplines is not only healthy for the mind but vital for progress and innovation.