Since Kaffe came up on this list, let me add a few comments about it:

> 
> Kaffe is a clean room implementation to the spec but they have expanded the
> language in some interesting ways. I seem to recall they used the MS alternative
> to JNI but maybe they put in JNI as well. 

Kaffe fully supports JNI.  In fact, the native parts of its AWT are completely written
in JNI.  In addition to JNI, it also supports the faster KNI (kaffe native interface)
which is similar to Sun's first pre-JNI native interface (which in a way is similar to
Cygnus CNI w/o vtables).  Technically, there's no need to use JNI for kaffe's
libraries itself; due to the lack of an incremental or generational collector this 
is currently a complete loss in every respect.  You're paying a performance penalty 
for JNI that is usually offset by enabling more precise gc.

Nevertheless, third-party JNI libraries are fully supported to the extent that 
JNI is specified.  Keep in mind that the JNI environment as an execution environment 
is highly underspecified.

Support for MS's JDirect stuff is available too, but it's an extension only, not
necessary for the base system and I don't think anybody uses it.  Quite frankly, I
think it was just a funding and good-or-bad PR vehicle for Transvirtual.  (Transvirtual
plays the same role for Kaffe that Cygnus plays for libgcj and other sourceware
projects.)  Unlike the blackdown patches, though, the MS extensions are GPLed, 
I should add;  but from a technical point of view, I haven't even looked at them 
at this point.

> From a recent read of Kaffe I got the
> impression that they stopped at 1.1.1 and did not know if they were headed for 1.2
> or 1.3.
> 

No decision as to stop at 1.1.1 has been made.
For more information and to learn how you can contribute, see www.kaffe.org

What gets implemented, gets implemented.  Unlike Blackdown, kaffe is an open source
project, so most people are welcome to contribute to a codebase that is out of Sun's
control.  Because of the cleanroom nature, people who have signed license agreements
to obtain Sun's source cannot.   

I think it is impressive what Kaffe has accomplished so far.  Despite only 2 people
working full-time on it, and a handful of part-time contributors, it's really a
usable 1.1 environment.  It's not as fast as IBM's or MS's JVM (by far not), but it
easily surpasses for instance the 1.1.7 Blackdown with the latest TYA.
In addition, it's reasonably modular so people can port it to new architectures
and new threading systems etc.  easily.

What is lacking is thorough testing.  In open source projects, this is usually done 
with the support of the community.  While Kaffe has picked up here, it still doesn't 
have the support projects like Apache or the Linux kernel have.
For this reason, it's currently only developed by Transvirtual (who are the owners
and also sell a related version) and by a few people who use kaffe for academic 
projects, to prototype systems.  (Plus maybe a dozen regular (small) contributors
on the mailing list.)  

I think one reason for this is that we didn't invent Java --- it was invented by
Gosling and others at Sun.  We shouldn't forget that---we're only reimplementing it
in trying to create a multi-platform programming environment for a reasonably
modern language.
In addition, while the blackdown ports haven't been flawless, they provide a no-cost
alternative for Linux.  Unlike what RMS wants you to believe, few people actually care 
about licensing as long as there is some software they can use for free. 

Another reason, I think, is that a lot of people test their complex applications,
and they'll stop as soon as they hit the first unimplemented or not compatibly
implemented method.  Even if you have 95% coverage, you won't be able to run your
software if parts are missing.  This creates the perception that kaffe can't run
more complex apps.  If someone takes the time, though, it's possible to fix kaffe to
run such rather complex apps as netbeans, jigsaw, the icebrowser beans or the citrix
ica client.  (All of which are examples of apps Tim Wilkinson has successfully 
debugged)
Plus, of course, there's the many cases where the JDK spec is missing or lacking and
stuff has to be black box revenged.

        - Godmar


----------------------------------------------------------------------
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to