From a marketing strategy perspective, Microsoft's primary goal with the .NET platform is to "kill" Java. If this should succeed it would be a significant boost to their monopolistic ambitions; the DotGNU project definately has no desire to promote C# over Java. We made the decision early on that we would like to equally support both Java and C#, and both bytecode systems (JVM and CLR).
A significant amount of work has been done in this direction. Our compiler suite is not only able to emit bytecode for the Microsoft-designed CLR, but it can also be used to generate bytecode for the JVM. We also have a Java-compiler front-end. Unfortunately, both of these areas of coding work are currently dormant for lack of volunteers.
These Java efforts will probably remain dormant until someone steps forward and volunteers to champion them.
There can be no doubt that technological innovation in the area of bytecode systems will continue. In particular, Parrot, the bytecode system of the Perl 6 project, looks very interesting.
The architecture of DotGNU allows to add back-ends for additional bytecode systems to the cscc compiler system, and additional VMs to the DGEE webservice server.
Since both the compiler suite and the webservice server are designed to support a choice of multiple bytecode system, migration from one bytecode system to another can be done gradually, one program at a time. This could be described as "stereo" of two bytecode systems.
Verbatim copying and distribution of this entire article are permitted in any medium or format, provided this notice is preserved.
This page is maintained by Norbert Bollow <nb@SoftwareEconomics.biz> with support from the DotGNU Developers mailing list.