Four Reasons to Love CouchDB, Part 1

    Other articles in this series:

  • Part 2

I've been sensing a lot of hype around CouchDB lately, and I recently decided to give it a try. After about ~30 hours of working with it, and a successful prototype of a project driven by CouchDB (and special shout-out to Zend Framework and Phly), I think I may have found a favorite new toy to share it with you.

This will be a multi-part series with each article touching on a single aspect of CouchDB. I enjoy MySQL and PostgreSQL as well, so I hope these posts aren't taken as a knock on them, but more of a thumbs up to CouchDB.

What is CouchDB

Taken straight from their website, "Apache CouchDB is a distributed, fault-tolerant and schema-free document-oriented database accessible via a RESTful HTTP/JSON API." It's designed to drive today's rich internet applications with scalability and even offline-operation in mind. If you're interested in reading technical inforamtion about CouchDB, check out:

Reason #1: It's Easy To Learn

My first experience with databases was Microsoft Access. I remember writing a Maxis fan site in ASP using an Access database which I manually updated every so often to store all of my content. I was able to leverage the "power" of Access (note: I was 13 or so at the time.), but it took a bit for me to really comprehend the features, and how my data should best be stored.

Fast forward to now. Companies are paying database administrators pretty good salaries for their database engineering skills. Even companies with rather simple data-structures need an experienced and talented database developer to keep their data schema scalable. It's becoming a very specialized skill, such as the multi-hat of "Webmaster" has nearly vanished and split into "Graphics Designer", "Web Programmer", and "Systems Administrator" (in the simplest of cases). Writing queries can be the simplest thing you've ever done, or can cause you to pull out your hair, depending on the data needed. Lets not get into replication and clustering.

Database systems aren't simple bread baskets.

CouchDB is very easy to learn. That's actually a two-part reason, depending on your expertise. If you're a developer or database expert, It's not that MySQL or PostgreSQL are hard to learn, but rather that CouchDB is easy to pick up and run with despite being philosophically different. Thinking outside of the box of relational data that has been etched into my brain for the past 8 years was tough at first, but within a few hours of reading examples and playing around with it, I was able to start harnessing the full feature-suite.

Who needs a server-side language, anyway?

If you're a front-end developer who's never worked with a programming language other than JavaScript or Flex, there's no SQL or complex protocol to learn. In fact, you don't need any application layer whatsoever to start playing around with it: CouchDB operates completely over HTTP. It cuts out the "middle man" by serving data in JSON. Hell, the administration tools is completely AJAX based. Creating databases and views, querying data, and modifying data is done all through a RESTful interface. Imagine a world where Flex developers don't even have to talk to PHP developers :)

I encourage you to start playing around with CouchDB. Keep in mind that CouchDB is still in an incubation phase, so it hasn't even met its full potential yet. This project is very exciting to me, and I will continue to watch it's progress.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Printed from: http://ajbrown.org/blog/2008/12/28/four-reasons-to-love-couchdb-part-1.html .
© © A.J. Brown 2012.