RSS

Search Engine

Thursday, September 8, 2011

A Google Android and Java history lesson

Summary: Despite what you may have heard, there’s really no news about how Google handles its Android open-source code development. Still, while Google’s path may be both legal and good for business, it’s not always good for developers.


Recently, some people were shocked-shocked I tell you-to discover that Google had looked at Java to help create Android’s Dalvik and that Google kept its Android source code to itself and its closest partners until the final product was released to the public. Oh please. There’s nothing new here. It’s always been that way and everyone who knows anything about Android’s history already knew that.

First, there’s the accusation that Android used Java code in creating its Dalvik virtual machine (VM). This is news? When Android first came out, Sun CEO Jonathan Schwartz, then Java’s owner, greeted the news of Android’s birth with “heartfelt congratulations.”

Oh, by the way, anyone could look, use, and, yes, copy Java’s code too. You see, Sun had open-sourced Java under the GPLv2 in November 2006. Sun wanted Google and anyone else to use and copy its code. That’s kind of the whole point of open-sourcing a program don’t you know.

So there you have it. From day one Android was using Java. I knew that. Sun knew that. Anyone who ever developed in Android knew that.

Just look at the record. Not only had Sun’s own CEO given Google’s use of Java his blessing, Google publicly explained in detail exactly what they were doing at the time. As Stefano Mazzocchi, a Google engineer, explained in 2007 with Android’s first release in his posting, Dalvik: how Google routed around Sun’s IP-based licensing restrictions on Java ME [Micro Edition]. “Android’s programs are written in Java, using Java-oriented IDEs [integrated development environment] … it just doesn’t compile the Java code into Java bytecode but (ops, Sun didn’t see this one coming) into Dalvik bytecode.”

Mazzoccchi continued, “So, Android uses the syntax of the Java platform (the Java “language”, if you wish, which is enough to make Java programmers feel at home and IDEs to support the editing smoothly) and the Java SE [Standard Edition] class library but not the Java bytecode or the Java virtual machine to execute it on the phone.”

Let me sum it up for you. In November 2006, Sun open-sources Java. In November 2007, Sun approves Google’s use of Java in Android. And, in the same month that Sun blesses it, a Google engineer publicly explains that while Google is using some of Java’s ideas it’s going its own way to avoid the restrictions that Sun attempted to put on its GPLed code. I mean, come on, just look at the title of Mazzocchi’s story! He says right out that Google thinks it’s worked out a way around Sun’s Java intellectual property (IP) restrictions. In the story itself, he then explains how Google is doing it. Oh yeah, there are big secrets here! All these recent “revelations” were public knowledge almost four years ago.

Is there room for argument over how both Sun and Google handled the licensing? You betcha! That’s one of the reasons why Google and Oracle are locked in a lawsuit. But, this latest “news” isn’t news, it’s just people repeating Oracle’s paid expert rehash of the situation. Of course, he wrote it to make Oracle look good and make Android look bad. That’s his job. That’s why they call them “paid experts.”

Moving on, there’s the “revelation” that Google doesn’t immediately open-source its Android code to the public and that it shares its Android source code and development goodies with its partners. That’s right. That’s exactly what Google does. They’ve always done it that way and they probably always will.

Guess what? All software companies, open source or not, do this with their partners. It’s business as usual. That’s why they call these relationships, “partnerships.” Canonical is doing it with IBM to bring Ubuntu to IBM’s System p mini-computers and blades and System z mainframes; Microsoft does it with Dell and HP; and on and on.

If anything, because Google uses the open-source Apache Software License 2.0, (ASLv2) for Android, Google’s in better legal shape than most open source companies in keeping its code to itself and its best friends. You see, in ASLv2, you’re not required to release the source code until the binary files, the executable programs, are released.

In practice this means that Google has always let the big Android hardware manufacturers, such as HTC, Motorola and Sony, have an early look at Android source code. Smaller vendors, developers and open-source purists have been unhappy with this Animal Farm=style “Some animals are more equal than others” approach.

I don’t like it either. I think that while this makes Google’s biggest partners happy, it’s also bad open-source development practice. The whole point of open source is that you make better software by sharing the code instead of keeping the code to yourself and your partners until it’s ready to go, I think Google ends up actually delaying Android development. In the end, this policy won’t hurt Google in the courts, but it may hurt it in the smartphone and tablet operating system marketplace.

None of this is news either though. That’s been public knowledge for years. Microsoft kept secrets that eventually led to it having its wrist-slapped by the Department of Justice. The Oracle/Google lawsuit? It’s nothing, but Oracle’s attempt to puts its piggy snout into the Android money trough.

Whether this case comes to a jury trial or, if Judge William Alsup gets his wish and Google and Oracle settle, the real issues boils down to money. In the end, the case isn’t really about copyright, patents, or licenses. Those are just the tools Oracle is using to squeeze cash from its Sun/Java investment. In short, it’s, I’m sorry to say, it’s just business as usual in the United States in 2011.

0 comments:

Post a Comment