CouchDB: Making databases fun

So the whole reason I even started writing Sheeple was to use it as a persistent object backend for Sykosomatic, that MUD that I’ve been sort-of writing since I started working on Lisp, but is still unfinished.

Sheeple is a very dynamic system, and so when I went looking for a database backend to build this persistence library around, most things fell short of my expectations… and then I found CouchDB.

I don’t think I can praise CouchDB enough. Everything about it  so far has just been a dream. After a week of nightmarish interactions with SQL (on a different project), nothing was a bigger blessing than CouchDB’s easy, wonderful, simple design.

Everything about Couch just reeks of ease-of-use and simplicity. You don’t need anything fancy. No obnoxious authentication setup or all that bullshit MySQL makes you go through just so you can put your grandma’s phone number into a goddamn table. No ridiculous, pathetic attempts at making your object model fit in with your schema. No obnoxious ‘drivers’ and weird serialization formats to deal with.

All you need to do to get started with CouchDB is a single command to install it through your package manager, start up the daemon, and start throwing http requests at it with curl or something.

That’s it. That’s all. CouchDB daemon + http client + JSON library, and you’re GOOD TO GO. If you want to wrap that up and make it object-oriented or something, that’s -trivial-. You can tell from the moment you start reading their documentation, or the wonderful, but apparently still WIP book, that the CouchDB designers have put a lot of effort into making life easy for you. They really do live up to their motto: Relax.

CouchDB has been a dream to work with — it’s easy to get set up, easy to use, and easy to manage, all-around. Sure, a big benefit comes just from the fact that CouchDB is one of those shiny new NoSQL databases. Couch, though, goes the extra mile for you. You know what I don’t want to do? I don’t want a ‘driver’. I don’t want BSON.

You know what I do want? I want to go play with CouchDB some more — and you should too.

Tags: , , ,

4 Responses to “CouchDB: Making databases fun”

  1. Alex Popescu says:

    This sounds like a very warm testimonial for CouchDB. I’d be very interested to hear more about your scenario and how CouchDB was such a perfect fit (or why MongoDB would not be as perfect).

    I am tracking quite a few use cases for NoSQL based solutions on MyNoSQL: http://nosql.mypopescu.com and I hope to add your story there soon.

    :- alex

    • sykopomp says:

      The biggest reason for not bothering with MongoDB is because the barrier of entry is much higher than Couch: it looks more complicated, and there’s not even a driver for Common Lisp already available. I don’t know much about Mongo, though, I sort of stopped bothering to research it when I got the impression that it would be a royal pain to use.

  2. sir_Gollum says:

    I want to quote your post in my blog. It can?
    And you et an account on Twitter?