5.6 .NET

In August 1998, Microsoft shipped version 6.0 of their Java development tool, Visual J++. This product turned out to be controversial, partly because it allowed developers to very easily call on the services of the Windows platform, thus violating what Sun saw as one of the key selling points of the Java platform: its platform-agnosticism. Visual J++ 6.0 was billed as having “the ease of Java, the power of Windows.” Microsoft saw in Java an innovative new language, and wanted to leverage the Java language to enable developers to more easily build Windows applications. A lawsuit was filed by Sun, and Microsoft was eventually forced to stop developing their Java product (Microsoft 2005; Lohr 1998). In response to these events, Microsoft developed their own in-house platform .NET, which is reminiscent of the Java platform, and a new flagship language for .NET, named C#, that has many traits in common with the Java language.

Anders Hejlsberg, the former architect of Delphi, was the architect behind Visual J++ 6.0. He went on to become architect of the C# programming language, and a key participant in the development of the .NET platform. He shared his thoughts on the Java experience in an interview (Microsoft 2005):

[The Java experience] gave us clarity [...] around creating .NET [...], taking control of our own destiny, and building a platform where we could truly innovate and where we could build the stuff that we needed to build for our customers as opposed to trying to shape a competitor’s platform, which effectively is what we were doing. [...] The development environment we had on Windows at the time [...] had many names, COM, OLE, ActiveX, DNA [...]. We kept rebranding the same bucket of bits. [...] It was [...] a very low-level experience, there were all sorts of... Registry and GUIDs and HRESULTs and interfaces and stuff you had to deal with. Horribly complicated. [...] Simplicity was getting lost. [...] Developers were voting with their feet [and abandoning the Windows platform for the Java platform], so we were kind of in trouble. [...] There was a lot of handwringing about where do we go. I think there were two camps, the evolutionaries and the revolutionaries. The evolutionaries said “we got to fix COM.” [...] It seemed to me a pretty big fix. And then there were the revolutionaries, and I was pretty firmly in that camp, that said “we got to build a new development experience, we got to clean up all this stuff—of course we need to interoperate with it, but we got to have a fresh start.”