Thursday 15 August 2013

Time to abandon NOSQL? (The name that is...)

It's odd when a technology comes along that is named after something it is not, rather than something it is. Case in point: NOSQL.

Here's my take on it.

RDBMS has been the crowned prince of data technologies for the last few decades. The momentum behind it was so strong that it has taken something like the last 5 years for other paradigms, more suitable to web scale data, to challenge its dominance. In order to highlight this paradigm shift, someone, somewhere, coined the buzz word NOSQL. The downside of doing this is that, rather than being known for what you are, you become known for what you are not.

And this is a problem. As organisations adopt NOSQL technologies, more and more want to join the band wagon. But rather than having a real world problem to solve with NOSQL, they just "know" that they want NOSQL, any NOSQL. Is the world of data really divided into the SQL and NOSQL? Does that even make sense?

Let's consider the following analogy.

Imagine a town with a large lake in the middle of it. Imagine too that the car is the only form of transportation known to man. Then, one day, someone invents a way to travel over water, cutting down journey times to the other side of the lake in half. But what to call this new fangled vehicle? Well, since it needs to be made clear that this is not just another form of car, let's call it NOCAR. Sounds ridiculous? It's not long before other NOCARs come into being. One that travels through air, one that requires no fuel and just uses peddle power (aka NOPISTON) etc.

Now, imagine someone saying 'Look I don't care what NOCAR we adopt, I just know that we should have one'. Or more subtly 'Aeroplane is my NOCAR of choice', as if now we should compare NOCAR solutions as a level playing field and exclude CARs altogether. Weird. The NOCAR that travels across water is as different to the NOCAR that travels through air as it is to the CAR.

Likewise with NOSQL. MongoDB is as different to Cassandra, as Cassandra is to RDBMS.

As alluded to above, perhaps WEBDB is more appropriate as it describes these technologies for what they are (or claim to be), rather than what they are not.

It's time to abandon the term NOSQL and start discussing these technologies for what they are rather than for what they are not.