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
. And I think that’s the way to make things easy for your community.