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.