My brilliant friend Salvatore Sanfilippo (otherwise known as antirez of Redis fame) has an interesting write-up on his website. How similar is programming to prose writing? After getting his own feet wet with novel writing, he is convinced that the two activities share many common traits.

One year ago I paused my programming life and started writing a novel, with the illusion that my new activity was deeply different than the previous one. A river of words later, written but more often rewritten, I’m pretty sure of the contrary: programming big systems and writing novels have many common traits and similar processes.

It is a worthy read. I especially appreciate his conclusions on what programming can actually learn from writing:

I believe programming, in this regard, can learn something from writing: when writing the first core of a new system, when the original creator is still alone, isolated, able to do anything, she should pretend that this first core is her only bullet. During the genesis of the system she should rewrite this primitive kernel again and again, in order to find the best possible design. My hypothesis is that this initial design will greatly inform what will happen later: growing organically something that has a good initial structure will result in a better system, even after years of distance from the original creation, and even if the original core was just a tiny faction of the future mass the system would eventually assume.

I suspect that his line of reasoning might be influenced by some sort of confirmation bias1. We are inclined to notice similarities between our own activities, especially so when we perform them passionately. While common patterns emerge naturally, differences, even remarkable ones, tend to go unnoticed.

  1. The term confirmation bias is probably misused in this context. I am sure there is a better definition; it just eludes me and my own ignorance. ↩︎