Opened Source

The below is an adapted comment I posted as a response to a piece on ReadWriteWeb calling out Google as evil for Android not meeting the author's definition of "open source". It's a pretty hollow article. I'm certainly capable of calling Google's behavior evil, but the willful simplicity of the author's line of attack got under my collar.

You can argue that Google is making business decisions you think are bad, or wrong. But yes, the definition of open source is distribution. The connotations of open source have traditionally been about development processes and the ideals underlying it all, but this is the reason that Richard Stallman insists on using the term "free software" instead of "open source". I've never seen Google term Android as "free software".

I would much, much rather see Google develop out in the open. I'm empathetic to the business reasons they do not, but I think that, now that they're successful, they'd find it in their greater long term interest to open the development process further. I think they're succumbing to various short term business demands, and the fear that competing in America's terrible and vicious telecommunications oligarchy brings.

But Google is not giving Android a misnomer, and has never lied about the way they intend to handle the development process. It has always been frustratingly closed, and they open it in phases, but when they do, they give it away under an open source license that people have used to make all sorts of spinoff projects like WhisperCore, Orbot, CyanogenMod, and a zillion others.

It's also given Amazon the ability to potentially brutally compete with Google with their new Kindle, and much more seriously fragment the Android ecosystem. Google's closed development process and closed-source apps are what has given it the leverage to keep every commercial Android phone to date in compliance with their guidelines, and gives users and developers assurance that their apps will run everywhere. Amazon's ignored all this, taken a pre-Honeycomb version of Android and run amok with it, because they can -- the released Android source is under the extremely permissive Apache license.

Even what Google has done so far has been of great business risk to them, but is open source to the extent that it is because of the image it gives, and because their engineers and corporate culture demand it. The Android team cares about the open source code they deliver, and Google will continue to wrestle between the ethos of that team and their business incentives. There's lots of room to criticize Google, and lots of evidence that they've behaved as sharks. The Android Open Source Project, even in the state it's in, remains one of the ways in which Google continues to lead the entire mobile industry to being more open and good.


Sure, leave a comment:
  1. chrisrhoden

    I'm pretty much blown away by the linked article.

    Google is so far from wrong about the way that they're distributing this software. Even assuming that they are not the copyright holders and are beholden to the terms of the license on the software (which is not true), they are essentially creating a private fork for every major release and then providing sources on distribution.

    The situation with Honeycomb would be unacceptable under the terms of the GPL, if (a) that were the license provided for AOSP AND (b) Google was required to follow the terms of the license they provide. But both conditions are simply not the case.

    Open-Source doesn't even begin to imply anything other than free to modify. And as far as we are all concerned, the Google fork should not be considered Open-Source until the sources are released. I personally think that this is a preferable model to many open-source project models, which either (a) include no continued development/support, or (b) provide a severely limited subset of features, with a commercial product including a "wrapper" which makes the product usable (I'm looking at you, Cloud9IDE). I am very, very glad that Google has demonstrated a commitment to improving the platform over time, and sharing those improvements.