Thursday, September 2, 2010

Programmer or Poet?

In his book The Mythical Man-Month, Fred Brooks shares this insight about programmers:
The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures.
Few would expect a man with a Ph.D. in Math, who is best known for his work writing software at IBM, to wax so so eloquently about the process of writing software.  Yet this quote captures precisely the lure of programming for many who practice its art -- the idea that we can build whatever world we want, following whatever rules we imagine, and populated with creatures of our own design.  What a heady experience!  Writing a program provides a kind of thrill that is hard to replicate.  I built this.  It is all mine and I am its God.  An engineer who designs bridges is limited to the rules of nature, and must consider the stress on the structure and whether it is safe for people to drive on.  They better take into account the impact of wind on the stability of the bridge:

As my colleague Charles Knutson likes to say, computer scientists have no such limitations -- we can build a bridge that flies!

Leonardo da Vinci chose to create his own world when painting the Last Supper, one in which the apostles are engaged in a variety of activities, rather than staring piously at the viewer.  He set the rules for perspective, he chose how the characters looked and acted.

Compare this to Salvadore Dali's surrealistic rendition, which creates an entirely different world of transparency and arithmetic.

Is a programmer more a scientist or an artist?

In a physical world that is made smaller through modern transportation and communication technologies, virtual worlds continue to offer voyages of discovery.


Brandon said...

This is what fascinates me about computers. I have heard it described as a sandbox, a sandbox where anything is possible. I don't think it is limited only to programming either, people get this sandbox experience from mmorpg's, games like Sims or Second Life, and even forums or blogs give the possibility to create anything that people would not otherwise have.

Brandon said...

Example- I put interactive fish on my blog. Why? because I could!

Gideon Burton said...

I think this gets at the concept of play that we were talking about in class on Thursday. In fact, play has been codified into applications where users can play with a given set of features in an open setting. It's related to the concept of serious play.

Post a Comment