In the 1980s, nobody would mistake Microsoft for a caring, cuddly company. Instead, Redmond was the place where other software companies were quietly strangled behind meeting-room doors. Bill Gates plotted the demise of competitors, and Steve Ballmer was known to use his loud voice to get his point across.
Microsoft was ruthless, and seemingly didn’t primarily focus on the needs of its customers when imagining software features. Rather, Microsoft was focused on killing the competition, locking its customers into proprietary file formats, playing it safe, being all things to all people, and earning large stacks of money.
On the other side of the coin, Apple in the 1980s came across as a happy, touchy-feely place where the user experience and vision were paramount. The feeling was that Steve Jobs and company really wanted to make something awesome, take risks, and be willing to be elitist and controversial. It seemed that making money wasn’t the point, although they proved to be quite good at that as well.
Fast-forward. Today, Microsoft is the market leader in dozens of categories. It has millions of users and developers worldwide, all deeply tied to their decisions. Apple, on the other hand, seems incredibly preoccupied with its bottom line at a level that only Microsoft and Oracle have previously seen.
And yet, while both companies recently had the same visions—desktop and mobile operating systems merging into one—only Apple has had the guts to follow through on that vision. Microsoft tried to push its new tiles onto the Windows 8 crowd, only to quickly backpedal in its upcoming Windows 8.1 release. Microsoft immediately gave into the outcry that came from its users and developers over the removal of the desktop Start button, for example.
Meanwhile, Apple blithely ignores its users demands, only implementing them after great struggle and strife. Take, for example, the fact that iOS7 is finally getting some real multi-tasking capabilities. With each new release of Windows 8, Microsoft seems to be moving closer and closer to its older systems, refusing to remove features that made people feel comfortable. They’re listening too much to their users; it’s actually harmful.
Apple doesn’t seem to care what you or developers want. It thinks it knows best, and it’s going to make all the decisions for you. It’s a shift we’re surprised by, but it doesn’t make either side right. Microsoft could use some backbone to stand up to its users and finally deprecate some old tech. Apple, on the other hand, needs to stop taking away from its users, and start giving them the features they deserve and want. Somewhere in the middle is a happy medium.
New database tech is good, but not mature
The world of relational database engines is mature and solid. The landscape of new databases is anything but.
When you venture outside the traditional RDBMS (and traditional RDBMS vendors like IBM, Microsoft and Oracle), choice abounds right now: SQL, NoSQL, MySQL, SQLite, graph databases, and key-value stores. Opinions vary about which database is the best. Developers can go the open-source route or stick with proprietary solutions. Is a NoSQL or relational database better for your application? The answer is no longer clear. This is the time for experimenting to see what works, both from the developer’s standpoint and the provider’s standpoint.
Venture away from the relational database and enter the Wild Wild West. Companies and open-source projects are experimenting like mad, pushing the boundaries of what can be done. Everybody is scrambling to get their ideas out, throwing them against the wall to see what will stick.
That’s exactly how it should be right now. These new technologies—and their applications—aren’t anywhere near ready for the establishment of standards. We don’t want a horse race; we want a mad dash.
Developers don’t have to choose one or the other anymore; instead they can use both. Developers can use both open-source NoSQL databases like MongoDB or IBM’s DB2 relational database, since IBM and 10gen are giving you that option now.
IBM and 10gen are trying to bridge the NoSQL and relational worlds by collaborating on an open standard that will let developers access data held in both MongoDB and DB2. Meanwhile, FatCloud is bridging the Microsoft SQL Server world with the NoSQL world, giving .NET developers choice as well.
But the story is not really about these companies collaborating; it’s about these companies seeing what makes sense and trying to take things in different directions. This is just the type of innovation one would expect in a burgeoning area, and we welcome this kind of work.
You should welcome this mad scramble as well. If you can get value from a newfangled database, don’t let the lack of industry maturity hold you back. Adopt early; try multiple solutions; be willing to experiment with software that you might want to replace in a few years.
Eventually the market will shake out, and perhaps some of these efforts will wither on the vine. Until it does, find what works for you now and implement it, and then watch with amazement—or is it amusement?—as fads and buzzwords go tumbling by.