I read in InfoQ: “Ja.NET is a port of Java 1.5 SE to the .NET platform. The compiler is based on the Eclipse JDT, which has been modified to generate IL as well as Java Byte Code. Java traditionally compiles each class into a separate file, but this creates an unacceptable overhead for .NET. To address this, a tool based on Cecil is used to create larger assemblies much in the same way Jar files are created for Java.”
Cool, but whats the point?
I fail to see why I would ever use it?
Both Java & .NET are available on the Windows platform – why would I use a runtime that is very likely to be incomplete?
IL interop is top knotch, so if you want to use a java library in your .net code, this would be a great way to do it.
Because a big part of why .NET is used in the first place is that it can run code written just about every language.
Of all the languages I know, the only one that doesn’t have a .NET port yet is Ada, and they’re working on it. (Erm… wait. Actually, there is an Ada .NET port, A#, which I found when I googled it up, so scratch that…)
This sounds similar to IKVM, which has been around for years…
http://www.ikvm.net/
IKVM is a Java virtual machine on top of .NET (I mean, implemented using C# instead of C++, for example).
AFAIK, Ja.NET is a java compiler that generates IL instead of bytecodes.
Edited 2008-12-19 02:12 UTC
Ah, yes – I missed that part. I wonder… Java has the ability to invoke the compiler from code… I wonder if that generates JVM or IL bytecode..
I’d rather .NET running under Java – while Java is available everywhere, .NET isn’t, at least, not really.
It would be great to have the opposite wrapper allowing one to easily run .NET apps anywhere Java will run.
It’s not free, but a company called Mainsoft make a product that might be what you’re looking for.
http://mainsoft.com/products/vmw_j2ee.aspx
It reminds me all stuffs like ADO over DAO, DAO over ADO, OLE DB over DAO, …
Why not implementing a C# compiler that generates bytecodes instead of IL or a CLR implemented in Java instead of the inverse?
Though the idea seems to be amazing and very interesting, I think it shows where the balance is getting biased…
The “reverse” already exists – Jacil (http://sourceforge.net/projects/jacil).
Also these days .NET is part of Windows, while the JRE is an addon – someone distributing Java applications might want to distribute native looking .EXEs to Windows users instead of requiring an additional download.
Recent versions of Java only support Windows >= 2000. .NET supports some older versions of Windows so it could a useful way to port Java software to unsupported versions of Windows.