Jacob Kaplan-Moss

Of the Web

I wrote this post in 2007, more than 14 years ago. It may be very out of date, partially or totally incorrect. I may even no longer agree with this, or might approach things differently if I wrote this post today. I rarely edit posts after writing them, but if I have there'll be a note at the bottom about what I changed and why. If something in this post is actively harmful or dangerous please get in touch and I'll fix it.

I’ll have more notes about CouchDB later tonight.

First, though, I want to step back and look at the big picture.

A few months ago, Bill de hÓra wrote that “a framework like Django or Rails is purpose-built for the Web” (as opposed to old-school tools that try to pretend the Web doesn’t exist – I’m looking at you, ASP). It doesn’t sound like much, but to me this is the best possible compliment Django could be given. We’ve tried incredibly hard to make sure that Django respects and follows the general principles of the Web.

Let me tell you something: Django may be built for the Web, but CouchDB is built of the Web. I’ve never seen software that so completely embraces the philosophies behind HTTP. CouchDB makes Django look old-school in the same way that Django makes ASP look outdated.

Let me try to explain what I’m talking about. You want an API without having to write a line of code? It’s called curl, and it ships with your MacBook. And just look at how simple the APIs are in your favorite language.

The wins go deeper than APIs, though. Think about what it would take to add load-balancing to CouchDB. I’ll give you a hint: perlbal. Or what about adding a transparent caching layer? Try Squid.

HTTP is the lingua franca of our age; if you speak HTTP, it opens up all sorts of doors. There’s something almost subversive about CouchDB; it’s completely language-, platform-, and OS-agnostic.

Look, CouchDB may succeeded, and it may fail; who knows. I’m sure of one thing, though – this is what the software of the future looks like.