Art in Programming
Andy and I gave a talk a JAOO a few years back called The Art n Programming. Since then, I've been giving variants around the world, talking about the ways in which developers can learn from artists (and, along the way, how we should avoid the false dichotomy of art vs. engineering).
David Troy came up to me after and said that he'd heard that the Museum of Modern Art in New York might be featuring two of his Rails applications in an exhibition.
Now it's official: Twittervision and Flickrvision will be on display next year.
In his blog announcement, David says:
Today, creativity and imagination (what some folks are calling the right brain) are becoming the key drivers of software and design. With imagination, we can see around the corners of today's most pressing challenges. While technical skill is certainly valuable, if it's applied to the wrong problems, it's wasted effort.Creativity, imagination, and artistry help us identify the areas where we should put our efforts. They help us see things in new ways.
Hear hear! I like to think of it as bringing balance back to a process that for too long has been seen as some poor bastard child of mathematics and engineering.
Software development is neither. Nor is it art. It's just software development. People who look for the "software is like xxx" analogies are missing the point. Software develpment is like software development. Let's decide what works for us, and have fun while doing it.





A few years ago I was talking with a visual artist friend about my general admiration for artists and "creative types." I made some comment to the effect of, "I don't feel very creative. I just solve problems all day." She replied, "That's all artists do. A painting is just solving a big problem." I'm fascinated by that idea, and even though I'm not a visual artist I think I understand what she meant: Trying to capture a certain image or perspective bound by the constraints of the medium, i.e. that the canvas is only so large or the paints will only do certain things, must really be about solving a problem.
Thanks for your thought-provoking blog.
Posted by: Philip | October 18, 2007 at 08:51 AM
I am both an artist and a programmer. I agree that the processes are similar. Both require a great deal of visualization and creativity and both require a certain process to get the job. The resultant success of either an application or an artwork depends on the the quality of your vision and how well you execute it.
Another interesting observation: when I'm painting I don't feel very much like programming and when I'm programming I don't feel the need to paint. To me either activity satisfies my need to create.
Posted by: Chris | October 18, 2007 at 10:47 AM
I am both an artist and a programmer. I agree that the processes are similar. Both require a great deal of visualization and creativity and both require a certain process to get the job. The resultant success of either an application or an artwork depends on the the quality of your vision and how well you execute it.
Another interesting observation: when I'm painting I don't feel very much like programming and when I'm programming I don't feel the need to paint. To me either activity satisfies my need to create.
Posted by: Chris | October 18, 2007 at 10:48 AM
You are right that "software is like xxx" analogies don't really work.
To test if someone would like to be a software developer, I always ask if they like to build things (or take things apart). If they like to build things, they will probably like to develop software.
The extra benefit of building with software is you aren't limited by how many bricks you have or how much concrete you can afford. Additionally, if you don't like the first "building", it is often reasonable to tear it down and start over.
Posted by: Frank | October 22, 2007 at 12:04 PM
There is a problem with the word 'art' as a term that has come to distinguish 'creative' practice from 'science' and allied disciplines. However, if we define art as 'an art' in the original sense, then it can be said that:
'an art is a skill that results from knowledge and practice'
which is a statement that can be applied to any discipline. Now we just have to deal with the usage of the word 'science' as in 'to know'...
Posted by: Dave Everitt | December 10, 2007 at 02:32 AM