Google - Doing No Harm?
Google may claim to do no harm, but they sure are being disruptive. I suppose that's generally a good thing. Certainly, most of their disruption has been aimed at industry giants like Microsoft, and even Apple to some extent. Google's cloud-based applications and Android mobile platform compete with both, respectively.
But what about Sun and Java? As I've written in the past, Android contains a non-compliant Java-like VM called the Dalvik VM (http://en.wikipedia.org/wiki/Dalvik_virtual_machine). I say it's non-compliant because they've neither licensed the rights from Sun to do this, nor has it been certified as compliant via the Sun Java Test Compatibility Kit (TCK) - http://java.sun.com/developer/technicalArticles/JCPtools.
But as a developer, do you care? Sun's claim is that it matters to you because if the Java platform gets fragmented (with different implementations behaving differently), it destroys a great deal of the value of Java's write-once-run-anywhere claim. Requiring Java implementations to past a comprehensive test suite and be certified ensures fragmentation will not occur, and is Sun's right anyway since they own the Java platform.
Clearly, Google is showing that they feel this requirement isn't important, and so far I haven't heard of any Java developers complaining about Android's VM. But exactly how well-adopted is Android at the moment? I haven't seen recent numbers, but I don't think there is a large-enough number of Android devices in the market to make it an issue yet.
However, Google just announced details on the forthcoming Google Chrome OS (http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html). This mainly targets netbooks and people who spend most of their time on the web, whereas Android targets mobile devices. Google is currently shooting for the second half of 2010 for launch, with x86 and ARM support.
Although I haven't read anything official yet, I would suppose that Google intends the Chrome OS to not only run Ajax (JavaScript) applications, but Java applications as well. It's not a huge leap to infer that they will achieve this with the same Dalvik VM that they use in Android. If so, this would greatly increase the number of deployed Dalvik VMs in the market across both Android and Chrome running on mobile, embedded, and portable devices of all kinds. On one hand, this has the potential to fragment the Java platform in general, but from Google's point of view, it's a unified Java strategy across all computers running any flavor of Google's platform.
This is all very interesting because Google has said all along that they're not building an OS, or an office suite like MS Office, and so on. However, the releases of Android, Chrome, and their cloud-based applications seem to contradict this on the surface. This may not be a contradiction because what Google is really building is an entire computing platform. This platform isn't just an OS or an application, it's a computing platform designed to run on the web, on mobile devices, and other portable devices like laptops. In essence, what Google is saying is that all applications, even those that run on mobile devices, are going to move to the cloud. And Google owns cloud.
Going back to fragmentation of the Java platform, it will be interesting to see if Sun and Google work things out to make Dalvik a compliant, certified, Java VM. If this doesn't happen, however, do you think Java developers will care that Dalvik isn't compliant? Write back and share your views.
Happy coding!
-EJB

