Writing software is hard, particularly when the tools you use force you to think at too low a level; it's time to start thinking about changing the way you write code… by thinking about the industry around us and how that affects your environment.Every so often an event comes
along in the industry that represents a potential “sea change” to how the industry operates. Sometimes these are technical changes, either by releasing a new technology or an important ground-breaking change to an existing one. Sometimes they're economic, driven by market forces outside of our direct control. And sometimes, they're financial, such as when two industry giants come together.
As strange as it might be in this magazine to say it, Java was one such sea change-it transformed an industry full of C++ programmers (who headily and haughtily pronounced garbage collection for wussies and Visual Basic programmers) into Java programmers, (who headily and haughtily pronounced manual memory management to be for wussies and C programmers). Java thus paved the way for a slew of other managed platforms to emerge without the uphill battle, including one that is near and dear to our own hearts.
(Sorry, Visual Basic 6 fans, I'm referring to the CLR.)
And, of course, developers are always looking for that “killer wave”, that new technology or idea that will give them that edge over their competitors and compatriots. For many, Ruby-on-Rails was one such “killer wave”, enabling developers to write Web applications faster than any of its technology peers (ASP.NET or any of the myriad Java web frameworks) allowed.
But rarely do we see our industry rocked by a financial change. (Unless you count the dot-com implosion as one such change, which I don't, since that was mostly an ecosystem and market thing.)
Perhaps you've been living under a rock since April 1st, and thus missed out on the news: on April 20th, Oracle proposed a buyout of Sun Microsystems, merging the two firms into one. A week or two earlier, the buzz had been about IBM being the buyer, but that died fairly quickly-as of this writing, the offer from Oracle sounds genuine, and it seems that about the only thing that would kill the deal would be some kind of anti-monopoly ruling by the US government.
I happened to be at a Java conference in Germany when the news broke, and naturally the discussion turned to what this means for the Java developers all over the world. Newspaper articles and industry trade rags carrying the story have waxed philosophical about what the deal means to Oracle and Sun, particularly in the database arena; Sun bought the principals behind the MySQL open-source database a while back, bringing Sun's total number of open-source database offerings to two (MySQL and Postgres), and rumors were flying about Oracle's plans to ruthlessly kill MySQL off, given its position as a low-end competitor to Oracle's own offerings.
But as fascinating as all that is to the Java and open-source community, I found myself wondering about the other half of the world I care about: what does a unified Oracle/Sun mean to the .NET world?
It turns out there's plenty to think about.
Of Navel-Lint Contemplation
While obviously any sort of crystal-ball gazing is speculative and must be taken with a grain of salt, a few of Oracle's next steps (assuming the buyout is approved and executed) are fairly clear to understand.
To begin with, while Oracle's always been something of a “silent partner” in the Java community, and has at times squabbled and argued with Sun over the future direction of Java, it's easy to see that Oracle is likely to invest just as much, if not more so. Remember, Oracle positions itself as competitor to Microsoft in almost any market it can, but particularly in the database market, and having a strong application development story (to offer up as a competitor to .NET) means Oracle looks that much stronger to corporate clients. Don't forget, too, that Oracle bought BEA last year, who makes WebLogic, a Java application server platform, which only reinforces this; if Oracle had been looking to squash Java in favor of something else, WebLogic would have been quickly “de-listed” from the Oracle inventory lists.
Buying Sun is actually a pretty smart move, to be honest. Doing so gives Oracle several things it was lacking before: in addition to an application programming platform (in Jav), Oracle' gains an operating system (Solaris, which has always been a preferred platform from which to run Oracle), a hardware server line, and a relatively successful storage area network line, all of which are key complementary elements to Oracle's database business.
The buyout also means that Oracle now owns two extremely good virtual machine implementations: the JRockit implementation it inherited from BEA, and the Hotspot VM that Sun brings. Each of them is a strong competitor to the CLR, and assuming that their engineers start to compare notes, it's entirely possible that Java applications will get a serious performance boost as a result.
Don't forget, too, that now Oracle owns OpenOffice, the open-source competitor to Microsoft Office that for years has been considered to be something of a “open-sourcer's darling”-meaning, only somebody who really doesn't like Microsoft would bother with it. But with Oracle potentially throwing its weight (both in marketing and engineering) behind OpenOffice as a competitor to Microsoft Office, it's not entirely unreasonable to imagine customers starting to look at OpenOffice applications in the same way that they think about doing Microsoft Office-based applications today. (Personally, I don't think OpenOffice has the same maturity as Office, but it's got most of the core features that most people use Office for, and the price point is hard to argue against.)
In fact, this move even out-Microsofts Microsoft.
For years, Microsoft promoted “a complete, well-integrated software stack” as a key advantage of .NET over Java, running marketing spiel something like this: Windows plus SQL Server plus C# plus Active Directory makes for a seamless development and deployment experience, far easier to install and manage than the “best of breed” “any part in any place” kind of environment that Sun pushed. The best-of-breed story always assumed that vendors were/are 100% compliant with the specifications Sun wrote to provide that kind of pluggability, and speaking as a Java developer, let me tell you, it never quite worked out the way it was supposed to.
But now, given that Oracle gets a hardware platform to go along with its software platform, now Larry can take the stage promoting a well-integrated, optimized software and hardware stack, offering customers a “Oracle-in-a-box” turnkey solution: “Buy the (formerly Sun) Sparc or x86 server machine, and we'll put the (formerly Sun) Solaris operating system and the Oracle database installation on it for you. All you have to do is plug the thing in.”
As another Microsoft competitor once put it, “there's no step three”.
Let the Games Begin
For those in the .NET space, Oracle and Java may seem like a galaxy far, far away, but it won't take long before the deal makes itself felt.
To begin with, Oracle's acquisition of Java breathes new life into a platform that has traditionally defined itself via the open-source community. In fact, Sun's anemic performance over the last decade has led the Java community to largely fend for itself in a way that the .NET community has never had to. This lack of leadership from Sun has created a very libertarian environment in which vendor tools are treated with suspicion until proven successful, an almost exact opposite reaction to the average Microsoft shop's attitude to things coming from Redmond. The (presumed) injection of Oracle's money, energy and commitment into this environment could actually give the Java community some stronger leadership, and potentially start matching Microsoft's innovations (on things like language-Java still looks in many ways like C# 1.0) stride-for-stride.
This means that Microsoft can expect a pretty strong “push” from Oracle on a number of fronts, both technical and marketing. The Oracle database has always been seen by large-scale enterprise environments as the preferential front-runner against SQL Server, and Java has so deeply entrenched itself in the large-scale enterprise application arena that some Java developers have taken to calling it “the COBOL of the 21st Century”. Now, Oracle's new position as database and application server and programming platform and hardware server vendor is going to give Microsoft a serious challenge in the Fortune 500 space, and Larry's never been one to let that kind of marketing opportunity slide.
Oracle is not likely to rest on its laurels and remain entrenched in the large-scale enterprise space, however; the company has made numerous attempts in the past to try to “scale down” to smaller businesses, and now with the acquisition of Java and MySQL, they may have the recipe to do so with greater success. It's not at all difficult to imagine a “Java Starter Kit” download from Oracle that contains Java, MySQL and NetBeans (the open-source IDE from Sun) all in a single turnkey installer, all of it open-source and free, and all of it a direct competitor to the Express editions Microsoft has been offering. This would make it more tempting for companies wanting to get started with small applications, where traditionally Microsoft's tools have been seen as easier to get started.
Does this mean the .NET developer, concerned that the sky is suddenly falling, should immediately flee to the nearest community college and start taking Java classes? Hardly-Oracle, like any company larger than 150 people, is prone to its own share of bonehead mistakes, and it's entirely possible that I'm misreading Oracle's intentions and they do something incredibly stupid instead. Don't forget, too, that Oracle's acquisition of Sun also puts them squarely at loggerheads with the other major player left in the Java world, IBM, and now with only two players to speak of in that world, Java could start to see some serious collateral damage as these two behemoths face off. If IBM decides to start offering “value-added features” to its own JVM, for example, it would signal an end to the “Write Once Run Anywhere” mantra that has been at the core of the Java stack since its beginning, and turn this into a three-way competition between Oracle/Sun, Microsoft and IBM.
And in many ways, this buyout is a warning shot across the bow at Microsoft against any kind of complacency that might have begun to set in. Oracle now has the tools to bring the fight to Microsoft's doorstep, and Microsoft is going to have to work very hard to avoid losing ground it has acquired over the last few years under Sun's lame-duck leadership. It's not unreasonable to expect Microsoft to “kick it up a notch” both technically and financially, particularly since Oracle is the kind of competition that Microsoft knows how to face off against, in contrast to the company's rather scatterbrained efforts to “compete” against the open-source community and LAMP (Linux + Apache + MySQL + Perl) stack.
One thing's for sure-the next half-decade is going to be a very interesting one for us all.
Ted Neward