Architecture war of the decade ...
With the preliminary injunction ordering Microsoft to include Sun's version of Java with Windows (actually, any product that includes .NET), the battle lines are clearly drawn for the architectural war of the decade.
The injunction order provides a nice overview of how Microsoft has done everythin possible, some legal and some not so, to fragment Java, destroy its channel of distribution, and finally, may use the Windows monopoly to tip the market in favor of its .NET as the winner for the general purpose, Internet enabled distributed computing platform market.
As someone who has been working on Java platform for past few years, and has some degree of vested interest in seeing it continue as a dominant platform, I have been watching this war with great interest -- be it performance, functionality, ease of use, sleek marketing, legal battles -- whatever. Besides that, it is fun to watch and understand how one of the most successful corporation of its time defends its turf and prepares to gain new grounds.
With this brief introduction, allow me to analyze, from my perspective, why is this war and its outcome is important to the players (including myself) and what would be the role of this preliminary injunction. I have organized my thoughts around these points:
- Microsoft has a lot to lose if the market tips in favor of Java. A lot of enterprise applications are getting written for Java, which can run on any platform (mostly different flavor of Unices) and this has somewhat slowed the penetration of Windows in the enterprise market. Ofcourse, the injunction order will perhaps have little impact on this market. On the client side, Java has been less successful. The reason, in my opinion, is its technical inferiority (Swing applications hog memory, are slow and have inferior look & feel) than universality of Java runtime on Windows machines. However, if SWT (of eclipse) finds its way to J2SE through JCP and J2SE runtime is made universally available on Windows, it could cause some problems to Microsoft even on the client side.
- Sun may not be able to translate the dominance of Java into additional revenues and profits but has a lot to lose in terms of its leadership of Java community. This leadership did accrue a lot of revenue to Sun during the Internet boom days. However, it is not clear how it will earn money for Sun in future. May be Sun hopes that its Java based SunOne will bring money and be reason for sale of its hardware in a world dominated by Java. Or atleast enable Unix platform to continue to be a competition to Windows in the enterprise and Sun can have a slice of it.
- I personally like the Java approach of separating standards from the implementation, community driven evolution and having building block components with commandline interface for basic functionality and visual tools for more complex repititive functions. Have not looked at .NET seriously, so can't say how it compares with Java. But the hype around VS.NET seems to imply that you better use VS for .NET development.
- One of the beneficiaries of Java's dominance is likely to be Linux. One of the oft-cited reasons for not adopting Linux has been lack of applications. But Java applications can run anywhere, including Linux. This may erode the profit margins of some of the backers of Java (Sun, IBM, ...). Interestingly, Linux community is hedging its bet by supporting both Java and .NET (through MONO).
- The must carry provision ordered by the court may only have a minor role to play, impacting the decision of only those developers who develop applets to be delivered to the browser via the Internet. As this group is quite a minority, it may not matter much.
- Finally, a close competition with .NET is likely to cause more innovation within Java, benefitting developers and consumers.
Irrespective of the outcome, the battles and the war are going to be worth watching. The most likely outcome, in my opinion is that it would be a heterogenous market with .NET and Java being strong in their own constituencies.