NoSQL Benchmarks NoSQL use cases NoSQL Videos NoSQL Hybrid Solutions NoSQL Presentations Big Data Hadoop MapReduce Pig Hive Flume Oozie Sqoop HDFS ZooKeeper Cascading Cascalog BigTable Cassandra HBase Hypertable Couchbase CouchDB MongoDB OrientDB RavenDB Jackrabbit Terrastore Amazon DynamoDB Redis Riak Project Voldemort Tokyo Cabinet Kyoto Cabinet memcached Amazon SimpleDB Datomic MemcacheDB M/DB GT.M Amazon Dynamo Dynomite Mnesia Yahoo! PNUTS/Sherpa Neo4j InfoGrid Sones GraphDB InfiniteGraph AllegroGraph MarkLogic Clustrix CouchDB Case Studies MongoDB Case Studies NoSQL at Adobe NoSQL at Facebook NoSQL at Twitter



State of the CouchDB Ruby Libraries

Karel Minařík and Mikeal Rogers had an interesting exchange of comments on the status of CouchDB Ruby libraries. You can read it ☞ here and ☞ here. Probably this fragment from Mikeal’s post summarizes quite well the whole conversation:

The basic complaint here is that there are way too many CouchDB clients. This happens in pretty much every language. It’s just way too easy to write a CouchDB client. The REST API is pretty well defined and every language has support for HTTP already worked out.

Languages that have better support for HTTP will end up having more clients. There are 4 or 5 competing Python clients, some of them actually include their own HTTP clients because Python’s stdlib HTTP client is crap. Compare that with node, which is relatively young, and there are already 4 competing clients all using the HTTP support provided by node which is quite nice (if you said “but it doesn’t support keep-alive yet” I’d yell back “I’m working on it!”).

While I do agree with both sides, I do think the conclusion should be quite different: there should be an official simple CouchDB library for all major languages. The advantages should be obvious:

  • a newbie will always have a simple library to get started with
  • someone lost in the ocean of other 3rd party libraries will always have a reference library
  • 3rd part library creators will have the chance to use a common base providing them with the correct building blocks

MongoDB people (through 10gen) are handling this situation better putting a lot of effort in providing official libraries[1]. And I think that’s the way to make things easy for your community.

  1. I know some will say that MongoDB must provide libraries due to their custom (unfriendly) protocol.  ()