Posts Tagged ‘couchdb’

CouchDB: Making databases fun

Friday, December 25th, 2009

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.