Saturday, January 27, 2007

A Tale of Two Themes

Like a movement of a symphony, this blog has two themes.

The main theme is that composing software is much like composing art, especially music. Both endeavours require talent and skill. Both have a vast repertoire of techniques that must be acquired over time, through experience. Both allow works that range from the small and lightweight to the epic. And both have a definite, though subjective, sense of taste.

We can admire software in a variety of ways: there are books dedicated to the study of various OS's and languages, celebrating their design. Code samples are the sheet music of our craft, and landmark tools and ideas impact our work in the same way those from a brilliant musical composer: they can change our jargon, our understanding, and the way we think.

The blog was almost named "Code Composer" or "Virtuoso" -- these still apply very well.

However, the secondary theme gives the blog its name, from a real-world incident: I was paired with a colleague, refactoring legacy code in Java. As we wrote test-cases and started to rearrange the code, we were both completely engaged in the process, commenting out-loud on the ideas. It was a sublime moment where things were going extremely well: this new software, , forged in collaboration by two seasoned composers, was infinitely better than the old.

As the old tests stayed "green", and the new code took shape, I quipped that I could hear the strains of Beethoven's Ninth Symphony. My compadre chuckled, "Ah yes.... Ode To Joy".

"No," I corrected: "Code To Joy". And this blog was born.

3 comments:

  1. Michael-

    You should read this "The Expert Mind" article: http://www.sciam.com/print_version.cfm?articleID=00010347-101C-14C1-8F9E83414B7F4945

    I think you'll find it interesting that music and software have something else in common. I think it is this characteristic of software that has made it my chosen profession after doing several other kinds of engineering.

    Cheers,
    Clark

    ReplyDelete
  2. Thanks, Clark!

    That's a wonderful article. I've read about chess players (Capablanca) as a youth and am awed by neuroscience so this is apropos on many levels.

    Here's an easier link for readers:

    http://tinyurl.com/p7xot

    M.

    ReplyDelete
  3. I find the scientific american article surprising, particularly the notion that chess playing is the drosophila m. of cognitive science. Humans are bad at playing chess, so I find it interesting that one would learn much about the brain that way. In contrast, we're really good at recognizing faces and speaking natural languages. So I would have guessed that one could learn more about our brains by studying how we do those things.

    The original post's suggested parallel between software and music is fascinating and new to me. However, I have always thought of good software as sculpture. I guess that's just the way my brain and my sense of aesthetics are put together. I wonder how many fellow coders out there think of our craft as painting, or dancing, or even chess playing, or any of the other art forms our species produces.

    ReplyDelete