Originally posted to my blog
I've been drowning myself in jQuery and HTML+CSS at work, which has been awesome for coming up to speed with all the recent technical developments on the web.
After rediscovering Joose
(one of the guys on use.perl wrote it or helps write it I believe), and seeing one of their demos where Joose uses GoogleGears or HTML5's Database feature
Now this sounds familiar.... oh right, that's a perfect description of CouchDB
. It's one of those things you can see has HUUUUUGE potential, but really needs those little libraries that link it to other popular frameworks/platforms to really take off, or get that foot in the door with the web programmer zeitgeist.
So according to this mailing list thread about work on Joose.Storage which mentions CouchDB
and this announcement that Joose supports the cross-platform serialization library "jsonpickle"
, I wonder what it would take to get that perfect easy API so in a Joose class all you'd have to add to your Joose class definition is:
That and maybe adding something like (totally making this up)
Edit: Looks like there's already a jQuery CouchDB plugin
, written by Jerry Jalava
(see announcement on his blog
.) It looks like a straightforward implementation of the CouchDB API:
connection(database_name | view_name)
I'd like to see a database-backed object persistence layer that can use that API, or a number of other APIs, such as:
1. A server resource/URL that receives the name of a database operation, and a JSON representation of the data.
This is nice because it's easy to implement with whatever server database / language / runtime you have. If this were a centralized project, it would be trivial for members of the community to support new server environment/database combinations.
2. JSON-enabled Database Servers.
3. SQL Dispatcher.
Pretty much the same as #1, but with the SQL generated client-side. This would still provide a JSON interface, and require parameterized queries.
It seems to me that all of these ideas have been best expressed by CouchDB, but to acheive widespread adoption, I still have concerns with legacy systems, existing infrastructure, critical mass, etc.