David Reid wrote:
Consider DBus, which is a mandatory component of Linux (actually,
Freedesktop) desktops, is now understood by all developers, leading to more
and more apps talking to each other over DBus. I suggest that having a
document DB built in to all Linux desktops would be true innovation for
Linux development (especially since the GNOME pundits want to move to
"web-aware" desktops).
I reject the notion that any (much less all) developers understand DBus.
I'll concede the point. Maybe DBus isn't appropriate. Mostly I wanted
to discuss whether desktop applications could or should use a document
database instead of custom config files and binary formats.
(In the future! When it's ready!)
I agree with Noah's warning about "technobunkum." I disagree that a
desktop document DB is technobunkum; however since posting the original
question, I've realized that distros don't embed MySQL like this, and
even SQLite doesn't have universal adoption among desktop apps. So that
forces me to acknowledge that people have voted with their feet. (Maybe
"the people" are fools, but whaddayagonnado?)
2. (I'm surprised this doesn't exist already) A DBus CouchDB client API, so
that nobody has to learn or use HTTP in their code, just the well-known
DBus.
... having a DBus couchdb API is a TERRIBLE idea. It's right up there with
building an XML-RPC or SOAP bridge to CouchDB. I promise you that a great
deal more people understand HTTP than DBus.
Oh, right. That is why there aren't any language bindings for Couch. I
forgot that everybody just uses HTTP :p
Still, DBus is tangential to the main argument. My concern with a DBus
API is you need a persistent process translating between DBus RPC calls
and HTTP calls. So all DBus gives you is a language-independent API
but since Couch has bindings for all major languages (and direct HTTP
too), I could be persuaded that DBus is not worth the effort.
Having said that, any programmer in any language can learn DBus in a
day. But while HTTP and REST is easy enough, hardly any programmer can
use CouchDB properly without considerable practice. With CouchDB, the
API isn't the hard part. But if programmers haven't already adopted
SQLite by now, well, that's ominous.
I started out just speculating about the role of CouchDB with desktop
apps, perhaps even as an arrow in the free desktop's quiver. "Why not?"
I said. Well, I am starting to answer that question I'm afraid!
--
Jason Smith
Proven Corporation
Bangkok, Thailand
http://www.proven-corporation.com