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.