Necessity and innovation

A couple of years ago I started writing a CMS. I wasn’t happy with any that I had found, and I was convinced that I could do a better job. the first iteration was light and fast, database driven, and extremely customizable. But it still required too much hand coding.

I learned a ton from that attempt, so I decided to give it another go. Version 2.0 would be modular and extensible. I decided to build a module for every feature I wanted but hadn’t found in a CMS. I was well on my way to the CMS dreams are made of when my external hard drive bit the big one, leaving me with no backup. Then my laptop was stolen, and my CMS was gone forever. 2.0 never made it to a production server.

I was distraught. All my efforts wasted. All my anticipation was for naught. I realize that it was my fault. I was the one without sufficient backups. I was the one that assumed a trunk was a safe place to leave a laptop. I could take full responsibility. But that couldn’t take away my loss.

I decided to give the open source community another shot. I went on a quest for the perfect CMS.

Somewhere along the way I realized that I didn’t need a CMS, I needed a CMS toolkit, and that Drupal was just the toolkit for me.

A short tangent: In one of my early Computer Science courses, we were taught a couple of basic sorting algorithms, then given the task of implementing a column sort, a generalization of an odd-even mergesort. Which actual sorting algorithm to use in the column sort was left to us. Some used a bubble sort, some a quicksort. I invented my own. Or so I thought. It was very fast. While a bubble sort has a complexity of n2, mine was 2n for the data set we were worried about. As it turns out, all I did was rediscover the radix sort.

In retrospect, when I designed and implemented my CMS, I wasn’t creating anything original. I would not have done a better job than the Drupal developers. But that’s the direction my project was headed. Given thousands of man hours and years of development, my CMS would have looked an awful lot like Drupal.

So what is original thought? Calculus, telescopes and photography are each credited to multiple simultaneous inventors. I’m not sure if I completely agree with Kroeber, Ogburn, et. al. on the subject, but it sure looks like the historical materialist’s perspective applies here. Technological advancement is a product of society. Inventions will happen, regardless of the vehicle. Necessity drives invention and innovation. My sorting algorithm and my CMS had each been done before. But when I was unable to find a readily apparent answer to a problem I faced, I too became an innovator, at least on a small, personal scale.