Another promoting aspect of a REST / JSON interface, even a simplistic one (like say, no query support, but simple retrieval), is the ease of which you can get something running from first download. It makes a big impact on people to see "hey, this actually works, it's simple, looks clean and I can work with it. Right now".
No language bindings, no installation, no nothing. Just wget and a couple seconds. Perhaps not useful immediately, but then the ideas come, the realizations that Thrift might be a better fit for my app, further understanding of the datamodel, etc etc... The single important factor being lowering the threshold of entry. Also, showing a text/html representation when hitting the store with a web browser fits well in here as well. The power of immediacy and direct cognitive connection with actual function is not to be undermisestimated. :) I think this is one where couchdb is worthy of envy. A simple rendering of JSON objects with a slick appearance makes an impact. Thrift speaks of performance, while REST+JSON addresses simplicity. Together, they make pretty. Just some thoughts ... /d PS. I do not, btw, think pluggable transport protocols to be particularly useful. Thrift + JSON covers pretty much anything in my book, and as mentioned serve different purposes. On Thu, Jun 25, 2009 at 9:46 PM, Michael Greene<[email protected]> wrote: > Jonathan Ellis<[email protected]> wrote: >> IIRC my objection there was that for things like thrift/py that assume >> part of thrift is installed "normally" in python site-packages you >> can't just give someone a self-contained client module w/o some pretty >> gross hacks. > > I was assuming one would use the existing Thrift setup.py to > distribute an sdist tarball or a setuptools egg, and then have a > Cassandra setup.py that includes the generated source package, and any > wrapper utilities the Cassandra community deems useful. > > Evan Weaver<[email protected]> wrote: >> Does the Thrift JSON stuff still require you to generate client bindings? > > It's standard JSON, so no you don't have to generate client bindings. > To be honest, I've never used it myself (just BinaryProtocol) but > reading through > http://svn.apache.org/repos/asf/incubator/thrift/trunk/lib/java/src/org/apache/thrift/protocol/TJSONProtocol.java > it looks like the objects it produces have a normal JSON structure, > and identify field IDs and the Thrift type of the value. > > Michael >
