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.