May 10 AT 7:23 PM Alberto Vildosola 12 Comments

Andy Rubin explains why Android is open sourced but not a community-driven project

There’s been a lot of talk recently about whether Android is truly open or not. SVP of Mobile at Google — Andy Rubin — decided to set the record straight about Android’s openness. In the Q/A session at Google I/O this morning, he explained why Android is an open source project, but not developed in the open like other open source products.

When asked about this issue by Lance Ulanoff of PC Magazine, Andy responded:

Open source is different than a community-driven project. Android is light on the community-driven side and heavy on the open source. Everything we do ends up in the open source repository.
We're building a platform, not an app. Developers evolve APIs and deprecate APIs, they are always adding new functionality. When we add new APIs, typically in my opinion community processes don't work. It's really hard to tell when you're done, it's really hard to tell what's a release and what's a beta.
Developers have to have an expectation that all the APIs are done and complete at certain date.
If it was a community process, an OEM could start building devices, then those devices would be incompatible from a third-party developer's perspective. We have to make sure those APIs are on all those devices that adopt those platforms. Going forward, that becomes part of our job, our responsibility. A community process harder to manage. We take submissions form community, but it's a much more controlled way in how it comes out.
Andy RubinSVP of Mobile at Google

That makes sense to us. In order to have stable APIs in each update, Google needs to have a tight grip on Android’s development. If it didn’t, all hell would break loose with many Android devices launching with many different APIs — truly fragmenting the OS.

So no, Android is not an open source project in the same way that Firefox or WordPress are. But there’s a good reason for that. Those two products don’t have to deal with keeping a few hundred different devices all compatible with each other. While I know some people will disagree with Google’s decision, I think most of us understand where they’re coming from.

Alberto is a college student living somewhere between Miami, Sarasota and the World Wide Web. Although a former iPhone owner, Alberto is now a proud Android enthusiast. You can follow Alberto on Twitter and Google+ for his thoughts unworthy of an article.

    Most Tweeted This Week

  • Ken

    Wait, what?

    Google ships pre-finalized APIs to its partners *all the time*. Motorola, HTC, LG, Samsung all get pre-finalized versions of future Android milestones before the general public gets to see them. You think Samsung only got to see the Gingerbread spec a week before the phone was released? If the issue were API stability, Google wouldn’t have all these partners it ships early releases to.

    In fact… In every API I can think of, both open and closed, there is always an understanding that development APIs are subject to change. Many development ships even make it explicit in the code itself, by leading source code identifiers with underscores. I’m sure Google uses similar long-established practices in clarifying both to its partners and its in-house developers which APIs are “frozen” and which are in development. Linux, the kernel on which Android is running, is very explicit both in terms of API stability and version finalization. (And Linux runs, for the information of Android And Me editors, on hundreds of thousands of devices, not merely hundreds).

    You don’t hide your development trunk because you think the partners you already gave the source code to will ignore your flags for evolving APIs. That doesn’t make any sense. And flagging for evolving vs frozen APIs has been the norm in software development since – I don’t know – the 70s. Let’s not pretend Google hasn’t figured out how to do it.

    The reason Android is not only not community-driven, but also completely opaque, is a business decision. Google doesn’t want Apple, Microsoft, and RIM to know in advance exactly what Google is working on. It’s a trade secret.

    Unfortunately, Rubin lacks the intellectual honesty to admit that.

    • Alberto Vildosola

      Good point Ken. I agree that there’s some business advantages to hiding what you’re working on, but they do have a point about Android becoming fragmented if it becomes community-driven.

    • http://Website Bob

      Ok, let’s say Google do release unfinished APIs even with the caveat that things may change. With manufacturers already taking an age to update phones to the latest official Android OS release, would you really trust that manufacturers complete updates from an unfinished API to a fully finished API? I can see many manufacturers playing the lazy game and taking their time. Once they’ve sold the handset, they’ve got little motivation to keep it updated. If it was not for the public outcry for those who bought those handsets then I doubt manufacturers would ever update the handset’s OS. I feel sorry for those who buy not so popular handsets as they do not have the numbers to oppose manufacturers’ delay.

      I think what Google are doing is right. They are controlling the API releases to minimise fragmentation. But at the same time they are separately addressing the issue for the manufacturers causing delays to releasing Android OS.

      • Ken

        Wait, so, Google is withholding its development trunk, but giving its partners early previews (which they say they do), because their partners take forever to release firmware updates?

  • http://Website Lox

    I have personally no problem on how Google do its things except that I still don’t fully get why the honeycomb sources are hidden: beta or not, just give us the sources.

    But concerning the “community” aspect I agree with Rubin about the “community-driven” aspect. It can’t be. Most open source projects aren’t: wordpress is leaded by a couple of developers that dictate what is good or what is not to them, convincing them they are wrong is barely impossible. Now, Ubuntu: who decided about the change to Unity, or to use Banshee as default music player? The community? Sure not, it was Canonical.

    So, Android can’t be “community-driven” but can be more community oriented: please give more attention to developers ideas and fixes, please make the sources of ANY android version always up to date: that for sure will never break your API.

    I am still waiting for the Honeycomb’s sources. 3.1 is done in your office, you told us that 3.0 was messy and that it was why you kept it hidden. So what about 3.1? Is it still messy?

    Come on Google! How can you say android is still open source whereas the lastest version’s sources are still hidden ?

    • Ken

      The difference is that Ubuntu, WordPress, and other open source projects may have “benevolent dictators” as they are called, but their process isn’t opaque. You can see what’s being checked into WordPress’s repository the minute it’s checked in, not weeks (or in the case of Honeycomb, months – maybe up to a year) after the binaries are released.

      Comparing the fact that free/open source projects are often controlled by one party has nothing to do with the fact that Google doesn’t even release the source code until well after devices are shipping with it.

      • http://Website J.

        But remember – they don’t have to.
        Under the terms of the GPL 2.0 licence, all they have to do is credit previously established work and release source code in a “timely manner”. Since that’s never been tested in a court, the definition of “timely” is very much up for debate.

        • Ken

          That’s actually just for the Linux kernel, which is GPL2. Android is BSD.

  • http://Website SFO

    man, this guy is drunk all over again…

  • http://Website Daniel

    They kinda defended themselves against a strawman there. Nobody’s asking them to go the design-by-committee route, and it’s almost completely orthogonal to being more open.

    An example of a design-by-comittee process that’s not open: Java Community Process prior to the open-sourcing.

    An example of a very open process that is not designed by a committee: Firefox. They publish everything online, even routine meetings and plans for future features, but Mozilla still retains control over any decision.

    I still think the reason they don’t go too open is that they’d lose a lot of competitive advantage. As a real example, often Mozilla is the first to publish design documents for an idea, but their development pace is so slow many times Opera and Google beat them to the punch in delivering a stable browser with that feature implemented): Firefox button on the top left, smart location bar, Panorama, were all features introduced by Mozilla where they were leapfrogged by competitors. If Google were to, say, announce their plans to support NFC or port V8 several months before delivering, Apple could rush those features in and steal their thunder.

  • http://Website mobrien118

    Either Andy Rubin is confused, or I am. The way I see it, the project is not “Open Source” at all.

    The way understand “Open Source”, it means that anyone can contribute (source [the verb]) code into the project. It doesn’t have anything to do with “releasing the source” into the wild (although, it’s hard to let people contribute if they can’t see what they’re contributing to).

    Now, we see with the open source projects listed above that there must be restrictions on how/when/what gets put in there, which is a very controlled process, but I don’t see how Android can possibly be considered an open source project.

    On another note, an API is a design specification, not an implementation. Having an open API is something completely different and means that the design of the API is open to comment and controlled change until “ratified” (decided that it is sufficient to do the necessary job and provide the necessary functions).

    I’m not saying that I don’t like Google’s development methodology, nor the product, nor any of this, just that I think it’s incorrect to call it Open Source.

    Please, share your thoughts on this.

  • http://Website Mark

    Anyone can access the source code, and completely mess it up, why would google want to have there branding on something that wouldn’t work properly. I have seen Iphones running Android, and I doubt apple helped. Android is open source no matter how long they keep new distros hush hush until they are out of beta thats there option. If you can get any os legally for free.. it is open.