He thinks that NoSQL is not a very good name for the new databases we’re seeing these days, so he proposed a new name: postmodern databases. Why postmodern?
We've had similar points raised before, yet the term "NoSQL" continues to gain in popularity. There were similar concerns around "AJAX" and "Web 2.0" - both survived and are only just starting to be replaced.
Community-coined terms like NoSQL, AJAX, and Web 2.0 start as literal, descriptive terms. But after a while they become "brands" that represent a myriad of concepts and ideas that do not necessarily fit into their original definition. This is because they're not controlled or maintained by a single entity (like, say, "brands" like Redis, Twitter, Ruby or Django are).
(BTW, PomoDB would be a cool name for a new "NoSQL" database system ;-))
Web 2.0 isn't "community-coined". The term was invented by Tim O'Reilly to sell conference registrations and books. It's no more of a "brand name" and no more nebulous now than it was when he coined it.
AJAX was coined by Jesse James Garrett. I'm not sure that he would consider himself to be a community.
Yep, that's what I meant. AJAX was "community coined" in the sense that it was coined a member of the tech community, not by a company (as with a trademark or commercial brand name) or a standards body (as with official standards like "ECMAScript").
It's like when "the neighborhood" forms a "neighborhood watch." Not everyone in the neighborhood spontaneously starts it - it's usually one or a few people who come up with the idea and then everyone gels around it. Or like how Java was a technology created by Sun, even though it was really Patrick Naughton - it's a synecdoche of sorts.
All that said, while the above stands for AJAX, you probably have a point regarding "Web 2.0" since it was tied to O'Reilly as a company via trademark, though I'd argue that the community essentially "stole" this brand and made it a lot of things that it never originally was.
I still haven't figured out what Web 2.0 is supposed to be. The closest I've been able to figure is that it's either a pure buzzword, or synonymous with DHTML.
If NoSQL goes the way of AJAX, that's fine. It's not a very good term, but at least it means something useful. If it goes the way of Web 2.0, no thanks -- I'd much prefer a different term, any different term, so long as it's actually descriptive.
"Web 2.0" doesn't have a crisp definition. It encompasses a huge variety of things ranging from google maps to flickr. Overall it represents anything that feels like a step up from the web 1.0ish static html, grey background world.
A few defining characteristics of many "web 2.0" sites:
- Application vs. static content, nearly all content is dynamically generated, per user
- Use of AJAX to provide responsive interactivity instead of whole-page-refresh per-click
- Social media aspects, leverage of user generated content in the form of comments, media, etc.
- Use of web-centric graphic and usability design. No more default gray backgrounds, no more horrid framed interfaces, no more geocities syndrome. Tight, coherent layout trending toward minimalism. Use of proven usability enhancement accepted standards such as breadcrumbs, search, standard header or footer navigation menu, "click logo to go to home page", etc.
All of these trends led to a flowering of 2nd generation uses of the web which generally became lumped into the "web 2.0" category.
A web-store with an animated "under construction" banner that uses mostly default fonts and colors, contains a simple home page of static content which links to a few pages filled with tables of inventory listings and instructions on how to send in orders via email, phone, and by printing out/filling in/mailing an order form is web 1.0. A web-store that is sleekly designed with full searchability as well as browsing by category/manufacturer/what-have-you, a proper shopping cart system, a full detail page for each item with an image, detailed description including formatted details and maybe customer reviews, per-item inventory tracking, etc. is web 2.0.
1. A functional app with a modern, attractive design, as opposed to a legacy app that feels clunky and old. This is how it's used by non-technical people at my job. A web site can be made Web 2.0 by updating its aesthetics. Fixing bugs also makes it feel more Web 2.0.
2. A site where users can add "content" that can be seen by other users. This is how it's used by non-technical folks on campus, according to a friend of mine. Sounds reasonable, but it turns out they apply the definition quite literally, so any site with forums or comments is Web 2.0.
Web 2.0 can't be synonymous with DHTML, the buzzwords are temporally separated by about ten years. DHMTL was what Netscape called its <layer> tag, before it got blown out of the water by IE 4's radically superior .innerHTML. (And I use "radically" carefully; it rewrote the web as we thought we knew it.)
Web 2.0 = Ajax + Social Media, basically. Websites that don't have to refresh the entire page to conduct user interaction, plus social news/networking/blogging/etc.
Web 2.0 is the publishing and content that evolve with the web. For example the Google index gets page rank as a side effect of other pages on the web, rather than an assessment of the content itself.
The thing that bugs me about the 'NoSQL' name is that it seems to lump together "relational vs key-value/object store" and "centralised vs distributed" as one and the same distinction. They're not.
Databases based on the relational model can be distributed, 'post-modern' as this guy puts it, too.
There's some interesting work by logician/comp-sci/AI folks in this area, applying epistemic (and other modal) logics to multi-agent knowledge base scenarios, but I think it got a bit forgotten about because of its association with AI (think: lots of robots going around gathering knowledge which may or may not be consistent with eachother) rather than more mundane things like distributed relational databases.
We've had similar points raised before, yet the term "NoSQL" continues to gain in popularity. There were similar concerns around "AJAX" and "Web 2.0" - both survived and are only just starting to be replaced.
Community-coined terms like NoSQL, AJAX, and Web 2.0 start as literal, descriptive terms. But after a while they become "brands" that represent a myriad of concepts and ideas that do not necessarily fit into their original definition. This is because they're not controlled or maintained by a single entity (like, say, "brands" like Redis, Twitter, Ruby or Django are).
(BTW, PomoDB would be a cool name for a new "NoSQL" database system ;-))