Technical Spiders


Android and the myth of "open"

04 Jan 2012

Earlier today, I tweeted :

After working with IOS & Android, I can say it’s not about openness, it’s about building great tools for developers (and apple wins).

I got a large response (some positive, some negative) and though this deserved a bit of exploration.

A bit of background: I used to own a galaxy s, and dabbled a bit in learning how to build android apps. Now, I own an iphone 4, and have been learning how to make iphone apps. I’ve mostly been struck about much better the development the development tools are, and how many more good resources are available.

Now, Google has been using the term “open" as a bit of a marketing term. They claim that it is more “open" than IOS. Let’s examine this and see what this really means and how much it contrasts with IOS, and what that really means for customers.

First, first we take “open" to mean “open source", let’s look at the android source. First, it’s released under the Apache 2.0 license, but not developed in the open. Meaning that you can’t see developer commits, view open bugs, or see versions in development. This is then shared with handset manufacturers, who can make changes and release these forked versions of android on their own phones. Being under the Apache license, they are under no obligation to share these changes, and rarely are you able to even install a custom android build without “rooting" your phone. Additionally, Google’s applications (Gmail, Maps, Market, Youtube, etc) are in fact completely proprietary, and you can only distribute these apps if your distribution is approved by google.

Let’s compare with IOS - much of IOS uses the darwin kernel. This is open sourced under the Apple Open source license, but not developed in the open. You can’t get access to the full source code of all of the frameworks, nor can you install any custom IOS builds without jailbreaking your phone (except apple’s developer previews). Apple’s apps are proprietary, and you cannot redistribute them at all. Not all that different in the end, except with android you can read through the code, make changes, and install patches (although without a developer phone, you can’t actually test or redistribute any of these changes).

Next, if we take “open" the ability to make applications, let’s compare the two again. In android’s case many android devices can only install apps from the android marketplace. This is a handset manufacturer choice, and many devices don’t allow users to change that option without rooting the device. So, in many cases the google marketplace is the only way to download and install new apps. Looking at the Android Market Developer Policies apps cannot contain sexually explicit material, gratuitous violence, hate speech, illegal activities, gambling, etc. So, not all apps are allowed, and can be removed later by the market.

Now, let’s look at IOS’s guidelines. In addition to the same policies for the android marketplace (pornography, violence, hate speech, etc) Apple has a number of app guidelines about content scraping, privacy control, poor design or buggy code, but also states that the review process is guide, and the review process is manual and subject to change. So the large difference here is that apple won’t let you release what they consider “bad" apps. While this does add an extra step in the process, I actually see this as generally being a plus rather than a minus. Apple doesn’t want bad user experiences, and also wants you to succeed as a developer. Sometimes these policies are more restrictive than they need to be, but over time many of these have been relaxed.

So in the end, android is not as different as it claims to be. As an android user, I was frustrated by having a restricted device running a buggy, outdated OS controlled by my carrier and handset manufacturer. Apple makes it’s money by keeping it’s focus on it’s customers and making them happy. Google makes money from advertisers and keeping it’s focus on customer conversion. I’d rather build for (and use) a platform that’s slightly more restrictive, but is working to make customers happier. Because as a developer, that’s also what I want - to make customers happy.

android ios open

comments powered by Disqus