couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aurélien Bénel <aurelien.be...@utt.fr>
Subject Re: How do CouchApps fit into the CouchDB story? (Was: CouchDB Articles, Pills and Tutorials Ideas)
Date Thu, 07 May 2015 05:58:28 GMT
Hi CouchDB folks,

In a controversy, there are always good and bad things happening.
I would recommend getting rid of personal anger, and focus on CouchDB fantastic features that
emerge from the discussion.

> When I think of CouchDB, I think about how it is “of the web” and has these brilliant
design document strategies that FORCE the user to efficiently create side-effect free transformations
of documents and views that work nicely with proxies, etc. Before CouchDB, I never cared about
the etag and didn’t use all of the HTTP methods and return codes properly. I didn’t think
REST-fully.
> Having a system that structures your code, prevents you from doing stupid non-scaleable
things, and forces you to think REST-fully is superior to just winging it free-form in an
anything-goes programming environment (unless you’re awesome, but most of us are not). I
would like to see more features that FORCE web developers to create a proper RESTful webapp
and reinforce the original concept that CouchDB is a pure phenomenon of the web.


I would second that. 

When I first adopted CouchDB in 2010, this was just to implement a REST service, and I was
amazed how coherent this was (with all headers, status codes and even MapReduce as a way to
get derived resources to reduce latency).

Shows and lists helped me understand the distinction made by HTTP specification between a
"resource" and a "representation", and therefore the (partial) obsolescence of 3-tier architectures
when you have HTTP services (and hence the need to provide a default HTML+JS user interface
along with your JSON API).
By the way it would be great if it was easier to have the same URI for a document and a show
(or a view and a list), since it is the same abstract "resource", and then to route the request
towards a different script according to the `Accept` header. 

For all these reasons, I have used CouchDB in every research software I had to implement since.
And I adopted CouchDB as THE ultimate tool to teach REST services to my students for several
years.


Long live CouchDB,

Aurélien
Mime
View raw message