Robert Downey
My Thoughts
About Me
My Blog
My Thoughts
Resume
Code
Contact Me


Thoughts on Sun vs Microsoft

Sun vs MS

These days it seems like companies would rather file suit against their competition than actually compete with them. This is certainly the tactic Microsoft's rivals have been pushing for several years.

Most recently, Sun Microsystems has decided that Microsoft has used their monopoly to damage Sun's Java platform, and that Microsoft should be both forced to include Java in every copy of Windows, and that they should pay Sun 1 billion dollars in damages.

I say baloney.

Please, tell me what you think.

Before reading this, I suggest you get some background on Sun's case here and here.

Let me preface the below statements by saying that this is primarily in response to Sun's insistence that an immediate injunction that would force Microsoft to start including Java with Windows is vital to prevent further damage to Java. The argument does, however, apply to Sun's case in general.

This is by no means a complete analysis of the situation. For instance, I don't really address Sun's claim that one way Microsoft is hurting Sun is by including an outdated version of Java with Windows, thereby crippling Java applications. (This is, of course, stupid. Sun sued Microsoft to prevent them from updating their own JVM because Sun believed that Microsoft was violating the contract they signed. Microsoft settled this case, although not because they were guilty, imho. Anyway...)

Sun's argument is that because Microsoft doesn't include the latest JVM with Windows, applications developers are reluctant to write java applications since it would require the users to download and install the JVM to run the applications.

This is a completely bogus argument for several reasons.

First, when the latest/greatest version of the JVM was installed on Windows, people STILL didn't write java applications because java was far too slow and had a horrible user experience. By horrible user experience I mean that Java both looked and felt different from standard Windows applications. (And, truthfully, these are the only applications that matter since 95% of all desktops run WIndows.) These differences, even if they were subtle in some respects, coupled with Java's sluggishness, made users hate Java applications. This fact alone makes it quite unlikely that developers are dying to write java client applications today and the only thing that stops them is the JVM availability.

Second, the entire idea that it's too hard for users to download and install the JVM, and this is why java isn't succeeding on the client side, is silly. Even now, with Microsoft supposedly crushing Java by not including the JVM with Windows, it's a matter of clicking OK a few times to download and install the JVM. In addition, Visual Basic flourished since version 5.0 because developers created applications people wanted, and either deployed vbrunXX.dll with their application, or users went and downloaded it themselves. Microsoft including vbrunXX.dll in their VB applications (which were few and far between), and didn't include it in the OS for a very long time (Win 98?), but despite all this, it flourished. The same goes for MFC. It was the applications that drove adoption of the runtime, not the runtime that drove adoption of the applications.

Third, I would say that EASILY 95% of all Java development today is on the server, and J2EE development is still (although not for long, imho) the number 1 server applications standard. People simply don't write java client applications anymore, and this has little to do with Microsoft's refusal to include a competing product in their OS. The web is almost always a better and even more ubiquitous platform for applications delivery. Even .NET developers, who have a seriously awesome WinForms library at their disposal, are by far more interested in ASP.NET and web applications development.

Lastly, I question the validity of the claim that java has been hurt in anyway by Microsoft's monopoly over the OS. Again, it was NOT because of Microsoft that people didn't write java client apps during the years that the JVM was up to date on Windows. It was because java was a horrible platform for client apps. In order to justify forcing Microsoft to include java in Windows, you must prove that it was Microsoft's OS monopoly that caused java client apps to fail. I see no evidence of this.

Certainly, Microsoft's OS monopoly now allows them to choose not to include java in Windows by default, but this has little affect on java because, as I said, few companies are developing client apps for java, and the injunction therefore does little to change java's status among developers.

Sun is the one responsible for the demise of Java on the client side. Period. It was Sun that released an immature GUI toolkit for Java (aka AWT) when Java first hit the market, thereby permanently stunting the acceptance of write once - run anywhere client applications. It was Sun who then realized this stupid mistake, and released an only marginally better GUI toolkit to try and win developers back to Java GUI (aka Swing). It was Sun, who has an irrational hatred of all things Microsoft, who decided that instead of trying to work with Microsoft and develop platform specific extensions, they would instead sue Microsoft and prevent them from supporting future Java versions on Windows. (And take note, Microsoft's JVM was 100% compatible with every single JVM spec. ANY application written to the JVM spec would run perfectly on Microsoft's JVM.)

Sun should be ashamed of themselves. Imagine all the improvements to their products they could have made with the time and money they've spent on trying to get Microsoft. If this isn't anti-competitive, I don't know what is.

UPDATE: An appeals court has decided that Sun can hold its horses pending an appeal of the ruling against Microsoft.