Last Updated May 11, 2011 5:01 PM EDT
When asked what "open" meant to Google, here's what Google senior vice-president of mobile Andy Rubin said (via Lance Ulanoff at PCMag.com):
Open source is different than a community-driven project. Android is light on community-driven, somewhat heavy on open source.Ah, the joys of inventing your own language. There are two reasons to do that:
Everything we do ends up in the open source repository. It happens in the open source, when the first device is ready, running that platform, and let me explain a scenario to you. We're building a platform; we're not building an app. When you build a platform, the developers have an ecology of APIs. They aggregate APIs, they deprecate APIs. We're always adding new functionality--
So when we add new APIs typically, in my opinion, community processes don't work because it's really hard to tell it's done, it's really hard to tell when you're dealing with what is a release and what's rejected. And when you're doing a platform, that doesn't work because developers have to have an expectation that all those APIs are good and complete at a certain date. If it's a community process, an OEM or an operator or somebody could take an early version before those APIs are locked down, start building devices with it and those devices could be incompatible from a third-party application perspective.
- Nothing in current English accurately describes what you do.
- You want to spin meaning in your direction.
Open means open source
Read through Rubin's response again and you'll see that he never actually addresses the question. Instead of saying what open meant to Google, he described the difference between open source and a "community-driven project." But that's OK, because we actually do have someone from Google -- Jonathan Rosenberg, senior vice president of product management at the time -- who addressed the question in 2009:
There are two components to our definition of open: open technology and open information. Open technology includes open source, meaning we release and actively support code that helps grow the Internet, and open standards, meaning we adhere to accepted standards and, if none exist, work to create standards that improve the entire Internet (and not just benefit Google). Open information means that when we have information about users we use it to provide something that is valuable to them, we are transparent about what information we have about them, and we give them ultimate control over their information. These are the things we should be doing. In many cases we aren't there, but I hope that with this note we can start working to close the gap between reality and aspiration.See, that wasn't so hard. Only problem is, open source is a single aspect, not the entire thing, as Rubin's three-card monte switch suggested.
Community-driven doesn't work for platforms
This is pretty easy to dispatch with one word: Linux. In fact, Android is based on Linux, so without that community-driven project, there would have been no Android.
Rubin goes further, claiming that platforms require many APIs and that community processes don't work because there's no way to know what collection of APIs compose a given platform release. It's hard not to laugh at that. There are definite releases in Linux. Are there earlier releases that can cause compatibility problems? The same is true in spades for Android. Here's what Rubin said:
So as the shepherd of this ecosystem we made the decision that we're actually going to release the platform as a 1.0, 2.0, 2.1 scenario, and we can actually make sure that those APIs are on all devices that are out at that time.Well, on all devices that can actually get the upgrade, and that's been an ongoing problem for Android. (If it wasn't, would Google have had to fix the process?) Quick, someone call the Ministry of Truth.
- Google Wants One Android, but It Needs Help -- and It Plays Badly with Others
- Google's Rivals Are Busily Squeezing Android To Death With Patents
- Apple Leads Google in Mobile Apps -- but Maybe Not for Long