Harmony is focus on provide a Tiger compatible JVM, but i think it is possible to make it more general for other language such as .NET, Haskell, Smalltalk etc.
I think in this point it would be better, to go the way like Haiku (the BeOS-rewrite):
The first and importants goal is, to be 100% compatible (in this case: to Suns Java).
If there existing by developing the possibility to write minor improvements, which don't break the compatiblity, then they can be integrated.
Only if the first goal is reached, bigger improvements are possible.
the Harmony VM may define such a VM core, such as memory management, multithread support, object layout etc, that is general for most VM. also, it can
define a bytecode of itself as its native bytecode. then other bytecode can
be translate to the general bytecode and then JITed.
Ths first goal is to be compatible. So be careful, that VM-extensions which don't break compatiblity to the current Sun VM, also can not break compatiblity to newer Sun VMs, how ever they would look like.
There existing a lot of things, where I thing, that the current Java-model is obsolet.
For example, that the compiler don't create *.jar files direct. Instead of that, it creates a lot of *.class files and directories. It is so, like OpenOffice.org would create loos XML-files and graphics and says (zip it yourself) insted of creating direct one document-file in which is all included.
Or in the class-libraries. For beginners it would be better, if there existing a System.in.readln().
But that would only extensions. The goal of Harmony would be 100% compatible to Suns Java. The extensions are in this stage unimportant.
Btw: Is GNU Classpath already dual-licensed - under the GPL and the APL2 ?
Greatings theuserbl