On the heels of today's announcement by Google of the Open Handset Alliance, Sun CEO Jonathan Schwartz has published a blog headlined Congratulations Google, Red Hat and the Java Community! The blog entry goes onto categorize the initial OHA platform (called Android) as Google's "new Java/Linux phone platform." Writes Schwartz:
I just wanted to add my voice to the chorus of others from Sun in offering my heartfelt congratulations to Google on the announcement of their new Java/Linux phone platform, Android. Congratulations!
I'd also like Sun to be the first platform software company to commit to a complete developer environment around the platform, as we throw Sun's NetBeans developer platform for mobile devices behind the effort. We've obviously done a ton of work to support developers on all Java based platforms, and were pleased to add Google's Android to the list.....
...And needless to say, Google and the Open Handset Alliance just strapped another set of rockets to the community's momentum - and to the vision defining opportunity across our (and other) planets.
Today is an incredible day for the open source community, and a massive endorsement of two of the industry's most prolific free software communities, Java and Linux.
Siezing on a small opportunity for hyperbole, the blog posting also capitalizes on the OHA news by drawing attention to Red Hat's support of OpenJDK. But the Red Hat news, while good for Sun, may be of little consolation given how Sun, despite Schwartz's portrayal of today's news, was not a player in today's OHA announcement. In fact, when I first read Schwartz's blog post, I felt as though I had entered some house of mirrors where things aren't quite as they seem. Not only isn't Sun listed as one of the 34 backers of the OHA (which is hard to imagine given Schwartz's enthusiasm for the announcement), 99 percent of the coverage regarding the OHA makes no mention of Java. Looking at the comments to Schwartz's blog, one commenter (Enaiel) wrote:
Why isn't Sun part of the OpenHandsetAlliance? Is it another case of [not invented here], since Google is not using JavaFXMobile so Sun doesn't want to be part of it?
JavaFX is the derivative of Java that Sun recently brought to market as a means of delivering rich internet application (RIA)-like functionality to handsets with a platform that's familiar to Java developers -- one that doesn't require learning Aobe's Flash. Another commenter to Schwartz's blog (Adam Kehl) wrote:
Wait, I didn't hear or see any mention of Java during the whole Open Handset Alliance introduction. The openhandsetalliance.com has NO mention of Java either. Where is the Java?
And Shawn wrote:
Funny.... I didn't see any mention on either the OHA site or any of the tech blogs of Java being part of the phone stack. That coupled with the fact that no one from Sun was at the presentation, makes one wonder if Java is even part of the google phone stack.
Whilst Schwartz has so far left the prescient comments unaddressed, perhaps some clues lie in Miguel Helft and John Markoff's New York Times' coverage of the OHA:
Mr. [Andy Rubin, Google's director of mobile platforms], who is 44 years old and is a veteran Silicon Valley designer, said the software system that Google has designed is based on the Linux operating system and Sun Microsystems’ Java language. It is designed so programmers can easily build applications that connect to independent Web services.
So, there it is. Java is indeed part of the Android platform. But why wasn't Sun there, uncorking the Champagne with the rest of the OHA members? Perhaps one clue lurks in the open source license that Google has selected for the Android platform: Version 2 of the Apache license. Then again, maybe not. It's a tough one to read between the lines of.
In all of the open sourcing that Sun has been doing of its code over the last few years, Sun has avoided the Apache open source license like the plague. Meanwhile, those who have tried to wrest control of Java away from Sun (like IBM) have endorsed Apache-licensed implementations of Java. In other words, the Apache license has been a bit of a thorn in Sun's side.
For Google to license an implementation of Java under the Apache v2 license, it has to be a derivation of an existing Apache-licensed code set, or one of its own creation since the source code to the implementations of Java that Sun has open sourced -- and in this case, the mobile edition of Java known as JME -- was open sourced under Version 2 of the GPL. The Free Software Foundation considers the Apache v2 license to be compatible with the GPLv3, but not the GPLv2 under which JME is licensed.
So, where does this story end?
Well, one possibility is that Sun plans (and has disclosed to Google) that it will migrate to version 3 of the GPL for open source licensing of Java. Given the compatibility between the GPLv3 and the Apache v2 open source licenses, this could pave the way for Google to rely on the JME source code that Sun has open sourced as the kernel of the Android platform. So far, Sun is mum about any such license change. But that hasn't dampered Sun's enthusiasm for the OHA announcement. In a prepared statement released to the press today, Sun's executive vice president of software Rich Green said:
We're thrilled to have Google amplify the global momentum behind Java technology, the world's most prolific open source software platform - on more than five billion devices. We are excited by the Open Handset Alliance's upcoming open source contributions of new services and frameworks. We welcome Google to the community and look forward to collaborating on the evolution of the Java platform as part of our ongoing relationship. In addition, Sun and the NetBeans community will provide NetBeans support for the Android platform as it becomes available and will continue to build on the support NetBeans provides to numerous mobile platforms and standards.
If there's a second possibility hiding in Green's words (vs. the possibility of moving to GPLv3), then perhaps its the part where Green says "new services and frameworks." Today, the primary editions of Java -- what some but not all Java developers might think of as frameworks -- are the Mobile (JME), Standard (JSE), and Enterprise (JEE) editions of Java. The question then, is whether the Android platform will represent an entirely new Java framework -- one developed by Google -- that doesn't conform to any of the existing three specifications. If that's the case, then two things are true.
First, as a Google-developed implementation of Java, Google is free to license the source code under whatever license it wants to. This is because "open source" refers to the licensing of the source code (source that would have been written by Google) and not the Java brand. Second, as a new framework for which no Java Test Compatibility Kit (TCK) exists, Java compatibility for a new Google-developed Java specification for handsets would be a non-issue. In fact, Google, if it wanted to, could establish its own TCK for the Android platform to certify that any open source developer-created derivations of that platform didn't alter the underlying functionality to the point that applications designed to run on Android would be rendered incompatible.
Should Google come up with its own Java-based framework for handset application development, it wouldn't be the first time a third party came up with a virtual machine architecture that's based largely on Java, but that isn't JME, JSE, or JEE. Salesforce.com's APEX platform for example is said to have Java under its hood and programming the APEX platform is apparently something that comes to existing Java developers rather naturally.
Should Google come up with a new Java-based specification for handsets -- one licensed under version 2 of the Apache open source license -- the question then is what becomes of the existing Mobile Edition of Java and whether the move could create divisions in the Java community.
My sense is that Sun truly welcomes the the idea of a mobile Web app giant driving the direction of mobile Java. Who's in a better position to evolve the platform than the companies needing frictionless delivery of their services to end users. Google has the will and the resources to make it happen.
For Sun, perhaps the big win will be on the developer tool front where, whatever Google comes up with, all Sun will have to do is retool the NetBeans Integrated Development Environment to support it. And clearly Sun is doing that. But so too will NetBean's nemesis; the Eclipse Foundation (you knowwwwww that Eclipse won't sit this one out). Meanwhile, regardless of what Sun does with NetBeans to support Google's mobile Java initiatives, I'm sure the developer community would appreciate a reconciliation of the license situation. Sooner or later, that situation will come to a head.