28 December 2009

NoSQL "movement" roadblocks HTML5 WebDB

Today's rant is coming between me and a day of skiing so I'll keep it brief. While trying to get to the bottom of why I can't enjoy offline access to Google Apps & other web-based applications with Gears on Snow Leopard I came across a post noting Chrome, Opera to support html5 webdb, FF & IE won’t. This seemed curious as HTML5 is powering on towards last call and there are already multiple implementations of both applications and clients that run them. Here's where we're at:
  • Opera: "At opera, we implemented web db [...] it’s likely we will [ship it] as people have built on it"
  • Google [Chrome]: "We’ve implemented WebDB … we’re about to ship it"
  • Microsoft [IE]: "We don’t think we’ll reasonably be able to ship an interoperable version of WebDB"
  • Mozilla [Firefox]: "We’ve talked to a lot of developers, the feedback we got is that we really don’t want SQL [...] I don’t think mozilla plans to ship it."
Of these, Microsoft's argument (aside from being disproven by existing interoperable implementations) can be summarily dismissed because offline web applications are a direct competitor to desktop applications and therefore Windows itself. As if that's not enough, they have their own horse in this race that they don't have to share with anyone in the form of Silverlight. As such it's completely understandable (however lame) for them to spread interoperability FUD about competing technology.

Mozilla's argument that "we really don't want SQL" is far more troublesome and posts like this follow an increasingly common pattern:
  1. Someone proposes SQL for something (given we've got 4 decades of experience with it)
  2. Religious zealots trash talk SQL, offering a dozen or so NoSQL alternatives (all of which are in varying stages of [early] development)
  3. "My NoSQL db is bigger/better/faster than yours" debate ensues
  4. Nobody does anything
Like it or not, SQL is a sensible database interface for web applications today. It's used almost exclusively on the server side already (except perhaps for the largest of sites, and even these tend to use SQL for some components) so developers are very well equipped to deal with it. It has been proven to work (and work well) by demanding applications including Gmail, Google Docs and Google Calendar, and is anyway independent of the underlying database engine. Ironically work has already been done to provide SQL interfaces to "NoSQL" databases (which just goes to show the "movement" completely misses the point) so those who really don't like SQLite (which happens to drive most implementations today) could conceivably create a drop-in replacement for it. Indeed power users like myself would likely appreciate a browser with embedded MySQL as a differentiating feature.

In any case the API [cs]hould be versioned so we can offer alternatives like WebSimpleDB in the future. Right now though the open web is being held back by outdated standards and proprietary offerings controlled by single vendors (e.g. Adobe's AIR and Microsoft's Silverlight) are lining up to fill in the gap. Those suggesting "it's worth stepping back" because "there are other options that should be considered" which "might serve those needs better" would want to take a long, hard look at whether their proposed alternatives are really ready for prime time, or indeed even necessary. To an outsider trying to solve real business problems today a lot of it looks like academic wankery.

1 comment:

  1. > Like it or not, SQL is a sensible database interface for web applications today.

    have you even read http://hacks.mozilla.org/2010/06/beyond-html5-database-apis-and-the-road-to-indexeddb/ ?

    ReplyDelete

Note: only a member of this blog may post a comment.