When is Java not Java?
When it's an Android
Google's cunning plan to bypass the Java license might not be cunning enough, depending on how Sun decides to play it and if they see Android as a significant threat to their Java revenues.
The Android platform can run applications developed for Java Micro Edition (J2ME) but to avoid the restrictions of Java licence Google's platform takes the Java Byte Code (the faux-machine language into which Java applications are compiled) and converts it to their own virtual machine language: Dalvik.
By this ruse they avoid Android-based devices having to have a Java Virtual Machine, and thus avoid paying Sun for a licence or being forced to open up modifications under the J2ME open source licence.
Google claims Dalvik is used for technical reasons, and the bypassing of the Java licence is neither here nor there.
Anyone around in the early days of Java will remember several attempts to create a "clean room" implementation of the language, with the same aim in mind. But creating something that can run Java code without infringing on any of Sun's IPR is technically very difficult, and with the scrapping of the extortionate licence fees originally demanded, clean-room Java disappeared.
It seems likely that Sun is in a position to see Google in court over their Dalvik plan, but whether they choose to do so is another matter. Taking on an open source project like Android would be bad publicity for a company keen to show its OS credentials, and if the platform isn't going anywhere then there seems little point in taking the risk.
But if Sun feels Android really is the future of mobile telephony then they will need to protect their revenue stream from J2ME, even if that means taking on Google and the OS community. ®