Oftentimes whilst browsing YouTube I fall into a hole. Last month I fell into a mashup hole, where I wasted many hours viewing of dozens of mashups between unlikely combinations of artists, such as Iron Maiden and The Monkees with The Trooper Believer and even more surreally, AC/DC vs Ghostbusters in Thunder Busters.
Last week I fell into a CouchDB hole. I’ve just started using CouchDB again after a hiatus of many months and was attempting to get up to speed. To be clear: I’ve always loved CouchDB. There’s something very pure about the fact that it’s controlled and accessed via HTTP; just you try delivering a web application directly to a browser using MySQL.
What I read during the time in my CouchDB hole has made me fall in love with it all over again. Whilst there have always been areas of CouchDB where it fell short, these tended to be aesthetic problems that acted as barriers to initial acceptance.
Reason 1 – Improved installation
Until fairly recently CouchDB wasn’t particularly well-packaged but that’s changed. There was a time when one had to decide between installing via source code, Mac Ports, Homebrew or CouchDBX, none of which could be said to be particularly friendly. For Windows or Mac it’s now a simple case of downloading an installer.
Reason 2 – Improved documentation
Let’s be honest, the documentation used to be a pig. When trying to solve infuriating problems where CouchDB was involved, what you really didn’t need was to see the slogan “Relax” plastered everywhere: “Relax? It’s half past ten in the freaking’ evening and I need to make a code drop today and you’re suggesting I relax!!?”. As for some of the truly toe-curling videos, let’s paraphrase Frank Zappa, “does humor belong in software development?”
To mine eyes, CouchDB’s admin console, Futon, has always been very easy on the eye. Now the documentation is baked right into Futon and it’s as good a read as any developer’s manual can be. And that’s not damning with faint praise.
Reason 3 – Project activity
The recent announcement of the integration of BigCouch into the main CouchDB codebase highlights the fact that CouchDB is very much under active development.
The future of CouchDB had appeared uncertain after its founder, Damien Katz, left the project to form a startup, Couchbase. In a post entitled “The Future of CouchDB”, he stated, “What’s the future of CouchDB? It’s Couchbase.” Obviously there was a commercial angle to this announcement but it seemed more likely to spread Fear, Uncertainty and Doubt about anything and everything CouchDB-related rather than steer the casual CouchDB user towards Couchbase.
Reason 4 – Regular release cycle
CouchDB is now on a 90 day release cycle. Whilst a release might contain only a few bug fixes, a project on a regular release cycle indicates an active and well-supported product.
Reason 5 – A well-defined roadmap
Perhaps more important than all the above points, was reading Jan Lehnardt’s announcement of aroadmap for CouchDB in The State of CouchDB. As well as outlining the release cycle, documentation improvements and generally giving the feel that this is a product with a bright future.
It feels like the CouchDB renaissance has arrived.