[kaffe] Kaffe the best free implementation?

Dalibor Topic robilad at yahoo.com
Tue May 14 02:42:50 PDT 2002

Hallo Heiko,

--- Heiko Garrelts <hgarrelts at web.de> wrote:
> Hi
> I'm both new to Java. I wanted to learn Java with a
> free VM and 
> compiler. But which one should I choose?
> When looking in the Debian package database I found
> these combinations:
> 1. Kaffe with Jikes as compiler
> 2. Gij (uses libgcj for classes) with jikes
> 3. Gij with Gjc
> 4. Some other VM which I think are not as complete
> as the ones mentioned 
> above (e.g. kissme with classpath).
> I think many Kaffe developers also tried some of the
> other implementations 
> and could help me with the correct decision. I want
> the best compatibility to 
> the original Java implementation as possible.

That's tough, as we don't really have a measure of
compatibility. I doubt that any free implementation
behaves exactly like sun's in all respects, especially
bug for bug compatibility. Then the second question
is: what java version are you interested in? There are
incompatibilities between sun's java 1.0, 1.1, 1.2,
1.3 and 1.4, according to sun's documentation.

Your best bet is running test suites (like mauve) and
checking if the results are good enough for you.
Unfortunately, there are just a few free (as in
software) test suites around, and they are by no means

Speaking of compatibility among the VMs alone, the
free implementations should be mostly compatible with
Sun's offerings. Again, this is based on anecdotal
evidence, since the free software community lacks a
test suite for the VM spec.

> AWT/Swing would be fine but is 
> not so important. But I want JIT and compilation to
> native code.

Kaffe has its own AWT implementation, and allows the
swing 1.1.1 classes to run over the AWT. That means
that you can run most of the Swing programs written to
java 1.2 spec. Classpath seems to be getting a free
swing implementation.

kaffe has a jit on many platforms, but offers no
native code compilation. Gij doesn't have a jit as far
as I know, but you can use gcj to compile to native
code. The biggest pro of using jikes is the
compilation speed.

> After finding so many freee VMs I ask myself why the
> most developers don't 
> work more together? E.g. if everony would use
> classpath for the class 
> implementations everything would evolve much faster.
> Is there any important 
> reason for this?

In short: different projects have different goals that
lead to different designs. But I would definitely like
to see more flexibility regarding library
implementations after 1.0.7 is out.

You might be asking yourself: How can I help the free
implementations? While learning Java don't concentrate
on a single environment. Test your code with different
implementations and report the discrepancies you find.

have fun,

dalibor topic

Do You Yahoo!?
LAUNCH - Your Yahoo! Music Experience

More information about the kaffe mailing list