What? Me? technophobic? I have the latest iPhone, my office is jam packed with USB gadgets and my car is a Prius, how much more techno friendly can one get?
That
is all fine, but looking beyond fun technologies that we play with just
for fun, or natural, but cool and useful, evolutions come to most of us
easily. But can you honestly say (I can't) that you always look at the
promise of a new technology and never have never looked at it not from
the point of view of the obvious new advantages, when the technology has
developed into something useful, and instead just looked at it and
judged this new technology only from it's first, shaky, implementation?
When
I was in my early teens (which occurred around the time just after
Mayflower had arrived in New England) my family moved into our first own
house. My parents were running a restaurant at the time (they ran one
or the other all through my childhood) and my mother had seen most of
the weirdo Heath Robinson designed (TM) commercial and domestic kitchen
appliances, and when we first entered our new home and mum looked in the
kitchen and realized there was a dishwasher in there, her first
reaction was "Well, I'm never going to use that one". One month later, the dishwasher was working more or less daily, and my mum never did any dished by hand.
Many
years later, me, her only son, having spent the better part of his life
playing with SQL based relational databases (and looking at some of the
code in them, I suspect that Heath Robinson is still around, now as a
software engineer), started to look at NoSQL databases, and my reaction
was largely that of my mums when she saw the dishwasher "Nah, I'm not going to use anything like that. Eventual consistency? What kind of silly idea is that".
Yes,
I was wrong, but I am still convinced that NoSQL databases (yes, I know
NoSQL is a bad term, but this is monday morning and I don't have enough
energy to think up something better) will not replace SQL based system.
What I do think is that we need both.
Just as I think
my mum got it wrong twice: Yes, the dishwasher really is a good idea,
but some things are better handled without is. The results is that there
is an abundant lack of sharp knifes in my mums house (as a dishwasher
is a really effective knife-unsharpener). My self, I use a
dishwasher, but knifes and beer glasses are still, to this day, washed
by hand by yours truly (beer glasses and I don't want any left over
enzymes in my beer, as they are used to kill bacteria, including the
really tasty bacteria that gives beer it's distinctive taste).
Too
many words has so far been used to say this: The world needs both SQL
and NoSQL databases working together, serving different purposes and
applications. As for Eventual Consistency, I still thing this is bogus,
just say what it is, no consistency, and live with it, MongoDB,
Cassandra and LevelDB are still very useful technologies, as is MySQL.
And in many cases you need ACID properties and atomic transactions and
all that, but in many cases this is a gross overkill.
Look at something like Virtualization.
In that case, I think I looked at it in the right way, looking at the
potential of the new features this brought, and not ignoring, but
thinking less about the issues with the first implementations (slow I/O,
slow networking, complexity of use, complexity of installation etc) and
looking at what it could do in terms of cost reduction, effective
systems management etc.
Back them, when I was a big
Virtualization supporter, many were opposing me with the obvious issues
with databases (which is the field where I work, if this wasn't already
obvious) which was that I/O was slow and unreliable. Yes it was,
but that can be fixed. This is not a flaw with the technology per se,
but with the specific implementation and the limitations of the
underlying technology at the time. Not everyone needs the highest of
high performance, many can do with less. And some can easily scale out
to more machines. All in all, many can benefit from Virtualization,
maybe more than you think. These days, I think noone doubts that
Virtualization is useful.
This is not to say I am
always right, but I am not so technophobic that everything that is not
something I already know is something that sucks. Also, we should be
careful when comparing things. We often compare based on attributes of
existing technologies and tend to forget that new technologies might
well have virtues of their own (which we do not use for comparison as we
are unfamiliar with these features as they don't exist in the
technologies we currently use).
I think one technology that is now in a state of being seen as inferior is Cloud technologies.
We look at a cloud by taking something we run on some hard iron
in-house and throw it at Amazon and look at the result. Maybe we should
build our applications and infrastructure differently to support clouds,
and maybe, if we do that, a Cloud might well be both more
cost-effective, scalable and performant than the stuff we run at our
in-house data center.
So don't let new innovative
technologies die just because they lack a 9600 baud modem or a serial
port. Or because they are no good for washing beer glasses (even if that
is a very important dishwasher feature).
/Karlsson
No comments:
Post a Comment