In a press conference at Google I/O today, Android chief Andy Rubin explained exactly what he means when it calls Android open — and equally important, what he doesn’t mean.The question came from Lance Ulanoff at PC Magazine, and Rubin thanked him for asking the question as it would finally let him state Google’s position once and for all.
It’s true that Android is an open source product, which means that Google releases the source code periodically. So anybody can look at it, modify it, and try and get their modifications accepted into future releases.
However, Android does not use a completely community-driven process like some open-source software. Rather, Google controls when the source code is released and which modifications are accepted.
Why? Because Android has to have stable APIs (which are how programmers write applications for the OS), otherwise developers won’t know if their apps will work or not. If Google let the community develop it, the company worries that some handset maker would release their own special version of Android with unfinished or special APIs.
This is the right move for developers and consumers. But it might disappoint some folks who want more input on how Android evolves.
Here’s what he said:
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.