Harmony is a new project from the Apache Foundation, to do an Open Source J2SE implementation.
Why now?
Motivations:
State of OSS Java:
Why now?
- Lot of interest from community, companies
- J2SE 5 is first version where JCP license permits doing OSS implementation of JVM
- Sun cautiously supportive
Motivations:
- Not going to fork Java
- Not going to add new and incompatible technologies
- too hard, OSS can't do it -- wrong, OSS is just license & community, says nothing about technology
- license of VM is a major deal to some people
- What about Mustang? Not Open Source.
- Enable widespread adoption of Java, without re-engineering
- Provide open and free platform for Linux and BSD communities
- Java is 2nd-class citizen on Linux, Mono making big inroads...
- Get at developing economies (like Brazil), that can't afford commercial licenses, or have government directive to embrace Open Source
State of OSS Java:
- Kaffe VM - borg of VMs (absorbs everything), focus on portability, but performance lags. Harmony is going to work with them
- GNU Classpath - Java class library; long-running; work with them, but licensing issues
- Jikes RVM - research VM; VM written in Java (little C and ASM for bootstrap); good performance characteristics
- ORP C/C++ research VM (Intel research); under Intel license
- GCJ - compile Java to native binary; lot Harmony can learn from them
- KVM - run Java bytecode on Mono (fast); not Harmony approach, but learn from them
- JavaL(?) - brazilian effort similar to Harmony