Re: [discuss] Limewire on free JVMs.

"Philippe Verdy" <[email protected]> Tue, 27 Sep 2005 01:29:46 +0200
Newsgroups gmane.network.gnutella.limewire.general
Message-ID <[email protected]>
From: "Jacob Hanslik" <[email protected]>
>>Note that Limewire now also works with Java 1.5 (even if it still does not 
>>use its new language features or supplementary or extended bundled class 
>>libraries).
> Well, java always has been upward compatible so I do not see the black 
> magic behind this ;-)

That's not the right point of view. I wanted to emphasize the fact that Java 
is not backward compatible. So if LimeWire starts developing with Java 5 
specific features, it won't compile or run on Java 1.4 without 
modifications. It's been already hard in the past to support Java 1.3.1 and 
Java 1.1.8 on MacOS 7/8/9, and this justified stopping active development 
for Java 1.1.8 (at the same time, this meant that LimeWire would no more be 
easily portable to legacy pseudo-Java platforms like the now defunct MSVM).

May be Java will resurrect on the MS platform one day, when a compliant JVM 
will be ported to native .NET (a VM in a VM...); this will only happen and 
be successfull if full JVM compliance is implemented (the really difficult 
work would be to port the JNI interface to the .NET CLI... this was already 
the most problematic issue in MSVM which just implemented a part of Java 
1.1, and I am not convinced that the .NET platform offers enough interfaces 
to allow such development, as if Microsoft had deliberately wanted to remove 
that possibility in order to fully control the .NET engine, notably in the 
way it manages its internal memory resources and locks for its JIT compiler. 
See for example the various limitations of the .NET interface with C and C++ 
and you'll understand the problem, which will become extremely critical when 
trying to port the Java garbage collector so that it will be able to run 
without locking the entire system and all running threads). So if it happens 
one day, it won't be on the MS implementation of .NET but on a concurrent 
.NET VM, with documented APIs to allow such dual-VM mode, based on a common 
micro-VM (may be Sun will be that concurrent supplier of a microVM that will 
support both VMs with a common resource management.)

Final note: LimeWire does use the JNI interface for integration of a few 
system-specific functions or emulation of missing features to solve 
platform-specific issues. 


_______________________________________________
discuss mailing list
[email protected]
http://www.limewire.org/mailman/listinfo/discuss