Google Trumps Sun's Mobile Java Play

Google Android Logo

Greg Amerson sent along two very interesting reads (One, Two) about what the Google Android platform means to Sun and the OpenJDK.

At first glance Android looks like a harmlessly cool, Java-based mobile platform… so what’s the big deal? At closer glance it appears that Google has invented their own Java VM, the Dalvik VM to be exact, that runs Dalvik byte code… not “Java” byte code, but it’s fully compatible with Java byte code. In addition to that, the majority of the Java implementation on the Android platform is all done using the Apache Harmony JDK code base, not the GPL’ed OpenJDK code base… interesting, why? Java is open source and free for everyone to use and bathed in light from God right? Maybe not…

That’s precisely what I thought until I gave Stefano’s blog post a read. Stefano’s take on the entire situation really exposes the genius and risk of Sun’s aggressive play to control Java by using the GPL. This wasn’t a move covered in light and wonderment, but rather a strategic stab at wiping out the growing divide of Java on the desktop/server space (Apache Harmony, GNU Classpath). Sun wanted to kill the possibility that some commercial entity could potentially create a fork of Java (IBM most likely with their existing VM implementation) while maintaining all the benefits of an open source community (bug fixes, testing, more developers, community supporting the platform as “the” platform and so on).

As it turns out the TCK that can validate a platform a compatible implementation of Java or not was provided, free of charge, to the Harmony team with “field of use” restrictions, meaning they couldn’t declare this a compatible Java platform in the mobile space without the wrath of Sun. So Sun was OK for Harmony to be called “Java” on the desktop, but that’s it

Suddenly the real M.O. of Sun’s is a bit more clear. With the advent of JavaFX and especially noticeable at JavaONE this year, Sun’s investment in the mobile space is growing; and rightfully so (mobile devices is a booming market). There is no profit in Java licensing on the desktop, especially with what was the growing support of Java forks… but there is a huge amount of money to be made in the mobile space with mobile Java license… hence the “field of use” restrictions.

It is possible to avoid the mobile Java license, but then you are forced to GPL your code as you must develop against the GPL’ed code base and adopt that license… interesting twist.

Sun locked it’s position in on the desktop/server market by GPL’ing their JDK, making it “pointless” for any large open source effort to spring up and implement an alternative Java fork (Which is what was happening). At the same time, the use of the GPL for their platforms, almost guarantees license purchased by commercial entities wanting to do development with Java on mobile devices, because chances are they don’t want to adopt the GPL for their products. So now Sun looks charitable and generous, but are in a completely dominate position of controlling Java. (I am actually impressed with the strategy behind the move by Sun)

Google didn’t want to play ball here and thusly created both the Dalvik byte code and Dalvik JVM to run on their mobile platform. Because the name “Java VM” and “Java byte code” aren’t being used, it doesn’t infringe on any of Sun’s IP. It’s also all licensed under the Apache 2.0 license, breathing a breath of new life into the viability of Apache Harmony. It might be thought logical that Google and the community kick back resources into making Apache Harmony the Java implementation for commercial entities to use, free of licensing concerns for both desktop and mobile markets?

This move by Google has created a Java compatible platform for hardware and software developers to deploy their Java applications to other than the J2ME platform shipped by Sun and without a need to license mobile Java from Sun either… potentially opening the floodgates to efforts to continue circumventing Sun’s efforts to control and lock down Java.

While this may give validity to the Apache Harmony project directly, does this indirectly give validity to all the other Java efforts, VMs, class libraries and platforms that folks have been trying to push this entire time? What has this one move by Google, essentially a giant digital middle finger to Sun, say to the rest of the Java community? What is the landscape going to look like for Java developers in a year? Maybe 2?

Who knows…

Tags: , , , , ,

This post was written by:

Riyad Kalla - who has written 2275 posts on The Buzz Media.

Software development, video games, writing, reading and anything shiny. I ultimately just want to provide a resource that helps people and if I can't do that, then at least make them laugh.

Contact the author

No comments yet.

Leave a Reply