It has been argued  that Microsoft's new .NET architecture  is better designed to be a generalized, cross-language object model. Such arguments often claim the death of the JVM as a cross-platform architecture, and look to Microsoft's technology as the future.
The .NET system indeed differs from the JVM. The .NET system was designed with language integration in mind. However, the places where .NET has particular advantages over the JVM mostly amount to mere conveniences . While the designers of the JVM did not make cross-language features a priority, it was clearly on their mind [17, page 3]. To dismiss the JVM merely because it is not a perfect solution seems short-sighted.
In addition, the JVM and its related libraries have had over five years to mature. Indeed, in many circles, the JVM has just finally reached the point where it is considered a stable platform. Giving up and jumping to the latest and greatest technology will likely lead to more waiting for stability.
There is also little reason to wait. Already, dozens of languages have been ported to the JVM , and many of them do use the JVM in a way that is aware of its object model. Some work remains to integrate these ports, but that is not the hardest part of the job. The hard part of porting these languages to the JVM is done.
By comparison, only two or three programming languages have been ported to .NET, and all ports were funded by Microsoft itself. Not only that, none of the .NET system is available as free software, while there are a number of free software implementations of the JVM. Also, many of the programming language ports to the JVM are also free software. The JVM and ports to it are an open, established architecture. Thus the JVM, while not perfect, is currently preferable to the .NET system.
Copyright © 2000, 2001 Bradley M. Kuhn.
Verbatim copying and distribution of this entire thesis is permitted in any medium, provided this notice is preserved.