09 May 2010

Google's Android, secrecy and openness.

So, Google’s Android is open source right. Sorta true.

It is in the general sense, the problem is that most of the phones running it need proprietary drivers to run, so you could never run a 100% open source phone.

Second, there’s a lot of complaining going on right now about how Google is being secretive and controlling. While Android is open source, Google doesn’t have a good open source model. They don’t make it easy to patch, they have their own secret repository that they sync randomly. And, most importantly, they have no roadmap.

In Google’s defense, it’s competing with Apple, the toughest competitor you could imagine. It would be hard to compete with Apple, who is the most secretive company in the world, by divulging all of their future ideas on their homepage.

Here’s something of interest. Google has been asked numerous times how many Nexus One phones they’re sold. They’ve (despite claiming to be open) never given an answer, just saying it’s done well.

Google started a webpage with the below pie chart to illustrate the userbase of the different versions of Android earlier this year. They promised to update the page every 2 weeks. But, when the Nexus One was released, it was the only phone running Android 2.1. To hide the success (or lack thereof) of the Nexus One, Google didn’t update the pie chart. Had  Google updated their pie chart, it would have been easy to deduce how well the Nexus One had sold (being that Anything under Android 2.1 would have been a Nexus One). But, guess what happened. As soon as Android 2.1 was released for the Motorola Droid, this pie chart was updated. Extremely deliberate. This now fudges the numbers, as there are just two phones (to date) that run 2.1 and you can’t tell how many of each. The majority are the Droid, but there are no hard numbers. Very sneaky Google, very sneaky.

Look at the chart below. It contains the relative number of active devices running a given version of the Android platform. Now, this is already proof that there’s a problem. There are 3 versions of Android still in use (2 months ago it was 4!!).

Google has done a great job with Android recently. They’ve been releasing new versions like crazy. Check this out:

Android 1.5 April 2009

Android 1.6 September 2009

Android 2.0 October 2009

Android 2.1 January 2010

In 4 months Google released 3 different versions of Android. Now, this would be perfect if as the owner of an Android phone you got updated to each of these, but you don’t. 35% of Android users are stuck with Android 1.5, and 29% are stuck with 1.6. Only 32% have the latest 2.1 release. Isn’t that pathetic. Note this isn’t like a desktop. You can’t buy the new version. You have to wait until it is released for your phone. In the case of the majority of phone manufacturers, it makes more sense for them to spend their efforts developing new phones, rather than updating their old phones forever. This causes major fragmentation. As an app developer it is very difficult to write an application that works on so many different phones, screen resolutions, and APIs (note, there are many apps that only work on certain versions on Android, or crash on certain devices). This is of course a huge disadvange over Apple, who really only has two devices (The original and 3G are almost identical, and the 3GS is just a newer CPU). Also, all iPhone always get the new iPhone OS at the same time (though this will change with iPhone 4.0). But, the plus side is that there are dozens of different devices that run Android. It’s a lot like the competition between Windows and Apple from 20 years ago. Windows won then, and I believe that Android can as well.

Now, there are many reasons for the graph to the left. Updating 20 different devices would take a long time, and getting carrier certification would be a pain. The other main reason is that many devices from Motorola and HTC have very customized interfaces. These interfaces are more complicated that regular apps, and take longer to be ported over to a newer version of Android. It’s rumoured that Android will launch version 2.2, FroYo in June-ish, and then we’ll start all over. Just as devices come out with Android 2.1, Google will launch a new version. The good news is that Google is aware of the issue, and it’s rumoured that they will get around this by having more of their apps (such as the web browser) available from the Market. This way, even if you can’t get the full new version of Android, you can download the apps that are developed along with it. Not a bad compromise. While there are a lot of problems with Android, I think things will improve. Part of the issue is that Google is used to doing web based products that can be updated daily. Products like Gmail and Google calendar are all hosted in the cloud. Google could release a new version of Gmail twice a week, and we wouldn’t have to do anything. The moment you went to the webpage you’d automatically access the new code. This is in stark contrast to Client based software, where the user must download an update. Generally, client based software gets modified much less frequently. Still, Google is still relatively new to this, and will probably improve. Only time will tell. My guess is that this will take a while to improve. Old phones are still waiting for Android 2.1 (none got 2.0, and some never even got 1.6). It’s unfortunate that by the time most phones get upgraded to 2.1, 2.2 will be launched. Oh well.