Visual J++
~ the goodbye ~
I ran Microsoft's Java for years without ever choosing it. The Microsoft virtual machine shipped inside Internet Explorer and inside Windows, so on a dial-up connection in Turkey in the late nineties every Java applet that loaded in my browser loaded on Microsoft's implementation. Nobody I knew picked that. It was what was in the box.
Visual J++ was the front of the same effort, and the front is the part that got sued. Microsoft said in December 1995 that it was licensing Java from Sun, and the first release came out on 1 October 1996. As a development environment it was good, faster than the Sun tooling of the period and better integrated with Windows, which was the whole idea and also the whole problem.
By the time I was writing Java at university it was a language you learned on the Sun toolchain, and Microsoft's version of it was already a legal artifact people mentioned in the past tense. The interesting part of that is the timing. J++ had been dead for years by then while its runtime was still installed on nearly every Windows machine on earth.
~ the chronicle ~
| Born | 1 October 1996, ten months after Microsoft licensed Java from Sun |
|---|---|
| Peak | version 6.0 with the Windows Foundation Classes, the last Visual Studio to carry it |
| Killed | January 2004, three years after the settlement froze it in place |
| Lifespan | seven years |
| Made by | Microsoft |
| Killed by | the January 2001 Sun settlement, which licensed it permanently at Java 1.1.4 |
~ what microsoft built on top ~
Two additions did the damage. J/Direct let Java code call Win32 functions directly, bypassing Java's own class libraries entirely. The Windows Foundation Classes wrapped the Win32 API and the DHTML object model into a class library for building Windows interfaces from Java.
Both were genuine engineering and both did the same thing to the promise on the box. Java's selling point was that a program written once ran anywhere there was a virtual machine. A J++ program using WFC ran on Windows and nowhere else, and it ran better on Windows than a portable one did. That was presented as a feature, and for a developer writing Windows software it was one. It also meant that the most attractive way to write Java on the most common desktop operating system produced code that could not leave it.
~ the lawsuit ~
Sun sued on 7 October 1997 in the Northern District of California. The claim was breach of contract and trademark infringement, and the trademark part is the one that mattered: the license to call something Java required passing Sun's compatibility tests, and Microsoft's implementation did not. A preliminary injunction followed in November 1998.
The settlement came in January 2001. Microsoft paid Sun $20 million and got a license to keep distributing what it already shipped, frozen at the feature set of Java 1.1.4, for seven years. It could not add anything Sun released afterward. Java 1.2 had been out since December 1998 and had changed the language substantially, so the freeze was not a pause. It was an expiry date with a long runway. Visual J++ 6.0 was the last version, and Visual Studio 6.0 was the last suite to carry it. Microsoft formally discontinued the product in January 2004. Support for the virtual machine ran to 31 December 2007, exactly as long as the settlement allowed and not a day more.
~ the next chapter ~
Anders Hejlsberg had been the architect on J++ and the Windows Foundation Classes. When the Java route closed he was handed the job of designing a language Microsoft owned outright, and that became C#, with WFC's ideas reappearing as Windows Forms. J# came along as a migration path for people with existing J++ code, did that job for a few years, and was retired in its turn.
The remaining Sun and Microsoft litigation settled on 1 April 2004, announced the following day, with Microsoft paying $700 million on the antitrust claims and $900 million on the patent side. By then the argument had produced its actual result. Sun protected Java from being forked by the largest software company alive, and in doing so it left that company no option but to build its own runtime and its own language. The.NET Framework exists because this lawsuit was won.
~ leave a rose ~
an anonymous tribute. one rose per visitor per day.
@}-->-- ... roses left here
~ leave a wreath ~
a rose fades by morning. a wreath stays on this grave for good, with your name on it.
from $1, paid once through stripe. it keeps the graveyard running: the hosting and the nightly digging. adopt it and the headstone reads "maintained in memory by" you. the groundskeeper plants new wreaths at the next tending, usually within a day.
» one email a week: new graves and the anniversaries of the dead. subscribe
other software: Compatible Time-Sharing System, Z Launcher, iRows, AOL Media Player
also died in the 2000s: PC Magazine (print), VoiceStream Wireless, Mixwit
~ leave a note ~
visitors before you have left these graveside notes. anonymous welcome.