Of course, sometimes Google can shoot itself in the foot with how it handles Android.
According a BusinessWeek article posted today, Google has decided to delay the release of the source code for Android 3.0, known as Honeycomb, for an undetermined amount of time.
The reason cited for the delay came from Andy Rubin, vice-president for engineering at Google and head of the Android group, who explained that because of the many new tablet-oriented features within Honeycomb, Google's engineers are worried that the code would be ill-suited for non-tablet devices, like phones. If the code were open sourced now, Rubin explained, Google "couldn't prevent developers from putting the software on phones 'and creating a really bad user experience. We have no idea if it will even work on phones.'"
The problem is, of course, that the open source license under which the Android code is licensed requires the release of the source code of the software project when the executable files are released. In most cases, the release of the source code and the binaries are done simultaneously. The license, the Apache Software License (ASL) 2.0, doesn't specify a time, however.
In the recent past, Google has stretched the time between release of binaries and source code quite a bit by granting major hardware manufacturers an early license to see and use Android code. This was done to give those manufacturers a head start on adding their own modifications to Android for their devices. This has not made the open source community especially happy, but ultimately Google would release the source code, thus remaining in compliance with the letter of the ASL, though not quite the spirit.
Now, however, according to the BusinessWeek interview with Rubin, the delay is undetermined, and could be as long as several months, as Google tries to get the source code ready for more devices.
The irony here is that Google did this to themselves.
"'To make our schedule to ship the tablet, we made some design tradeoffs,' [Rubin said]. 'We didn't want to think about what it would take for the same software to run on phones. It would have required a lot of additional resources and extended our schedule beyond what we thought was reasonable. So we took a shortcut.'"
That "shortcut" has been a source of complaints about Android for quite a while ago. Looking at the tablet-centric nature of Android 3.0 and the smartphone friendly code within Android 2.2 and 2.3 (Froyo and Gingerbread, respectively) led many analysts to wonder if Google would have to fork the two branches of Android. One for tablets and one for smartphones, as it were.
Basically, Rubin's statements have given a sharp answer to the internal forking question: no.
But by insisting Android remain a universal operating system for all kinds of devices, Google now finds itself in the untenable position of having to go back and fix Honeycomb until its ready for multiple platforms. And it may be doing that at the expense of open source.
I can understand the desire to prevent the appearance of suck devices running Android on the market. When Google opened earlier versions of Android, it was a proliferation of really bad tablets that hit the shelves. Now, with Honeycomb, Google fears the opposite: a collection of bad smartphones with the Android label on them.
The problem is, if you license your code under the ASL, there are certain legal obligations, and releasing the source code is definitely one of them. Specifically, the ASL says this about redistribution:
"You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form"
There's no time limit explicitly specified in the license, which means there's room for interpretation. Which means lawyers. It's not clear if any lawyers will jump in here, but given the smaller hardware manufacturers who aren't willing to pay Google's early-access license fees will be getting locked out of Honeycomb for quite a while, I would not be surprised to see some of them give it a shot.
Given the recent public speculation by suddenly interested parties that Android's use of the Linux kernel headers constitutes a violation of the Linux kernel's General Public License--speculations disputed by Linus Torvalds himself--the timing of this revelation may not be good for Google.
How will the community perceive the commercial needs of Google versus its adherence to free license practices?