Yesterday Google eventually unveiled the details of its mobile platform called Android. The least I can say is that I am impressed. The application level is all Java based, no Linux C, no legacy EPOC C++, no even standard C++. It's all readable Java with the garbage collector, reflection, extensive unit-testing support and zillion of standard and not so standard libraries many of which are actually documented.
Platform, Applications and Product Management
However, what impressed me most was not the wonderful architecture, that allows you to change the very phone dialer, not the Linux kernel as the only porting requirement, not even the Java language. Several years ago I was working together with the folks building another Java phone you might have never heard of - so I know very well that Java is no silver bullet for the phones.
What impressed me most was what's behind the Android - the laser-sharp focus of the Google product management. I keep saying that the only real difference between a platform and an application is that the application customers are the end users, while the platform customers are the developers itself. In my opinion, mixing these points of view is one of the reasons of making things look messy in many other smartphone solutions.
The Google Niche
It is this lack of a real platform on the market where Google aims at. In their introductory videos dozen of times they repeat how easy it is to create programs, how adequate emulator is supposed to be, how you change and change and replace all the platform components up to the phonebook and the telephone UI. There is little as attractive to developers as the ability of to easily inject their own code right in the middle of a big system. Like this was not enough they offered $10 million in prizes for the application developers.
There is no proof of the Android real world success so far. It might fail because of the poor hardware performance, low operator support or just because of missing the support for some critical end user use cases. However, what they already did was that they made many mobile developers want to program for their platform. I am not exactly sure about the others, but I am seriously considering to delay the long awaited Ruby on Rails trial and to devote this weekend experiments time slot to playing with the Google platform.
The productivity hook
Have a look at the Android HelloWorld example above. How many lines of code would it take on your favorite smartphone platform?