So, while you blinked, Google has released their own cross-platform virtual machine runtime called Dalvik, part of Android: An Open Handset Alliance Project [via Stefano Mazzocchi]. You can download and try it today, on your PC. It basically runs a cell phone emulator from the Eclipse IDE and compiles Java code to the Dalvik virtual machine.
Like the Java virtual machine (jvm) or the .NET/Mono virtual machine (clr), Dalvik is a runtime environment that can serve as a platform for web applications, desktop applications, and (the emphasis in this case) mobile phone applications. Dalvik essentially compiles and runs java code in its own virtual machine, apparently, and uses the open source Apache Harmony class library (a clone of the standard classpath – java class libraries). Dalvik/Android has not been open sourced yet (the code will be released soon under an Apache license, not GPL). So why duplicate Java? According to Stefano, even though Sun recently open sourced Java earlier this year using a GPL license with a classpath exception (allowing you to develop non-GPL java apps that rely on the classpath libraries), they didn’t extend the classpath exception to mobile apps apparently. Sun still has control over java apps on its mobile platform (J2ME). Another reason too is probably that Google acquired Android 2 years ago, well before Sun open sourced Java. Miguel de Icaza (creator of the GNOME and Mono projects) also weighs in on how the Mono project might incorporate or interoperate with the Dalvik VM.