Thursday, March 27, 2008

[Tech] Two Cultures: iPhone and Android

Finally, the iPhone SDK is out and the development community showes mixed emotions. Apple seems to have difficulties in providing the SDK (that costs about 100$ per year) to all developers who show interest, and particularly non-USA developers seem to be disregarded. Then there are questions whether third-party developers can use the full functionality of the iPhone, e.g. the "iPod" functionality seems to be locked; then what about development of "services" that run permanently in the background (like chat applications) and so on. Additionally Apple provides a very specific way of distribution of applications: iTunes. This is good and bad news, depending on the viewpoint: On the one hand it takes away a lot of infrastructure problems for developers as they do not need to deal with sales infrastructure (servers, payment, distribution, installation...), on the other hand, Apple decides in the end which applications will be listed and how (plus of course takes a share from the sale).

Now, I have to say, that I share great sympathy for Apple's design in general; specifically I love the iPhone platform (I do not need a mobile phone, so I "just" have an iPhone touch, which practically the same platform): it is a great system, excellent user interface and applications.

Having said that, I have mixed emotions about the platform lock-in. And here comes Google Android, and we really see two sides of a coin:
  • The iPhone started as a completly closed-up system under the hardware and software "control" of Apple and is apparently very well "tuned". The API is just released step-by-step to "third party" developers (and not to all of them as yet).
  • Google Android starts with an elegant top-to-bottom open (source) API and development tools based on Java (which has a huge development community), but without hardware
  • The iPhone is rather tightly coupled to the Mac platform (OS, API), Android is based on OS operating system (Linux)
  • From all applications are equal (Adroid) to some applications are more equal than others (iPhone)
  • One hardware/handset producer (iPhone) versus anyone can produce handsets (Android)
  • Long and successful experience in mobile products (iPods); but neither Google nor Apple have a history in mobile phones (which could be seen even as an advantage, when we look into the mobile phone market...)
  • Software distribution "laissez-faire" in Android versus clear conditions and company driven distribution channel (Apple)
I think, we see here a clear clash of cultures; Apple has a very proven platform based on years of iPod experience and even longer experience with operating systems, yet drives the iPhone project in a very traditional "top-down", one might even say paternalistic manner. I am sure there are good arguments on Apples side. E.g. a the demand for a consistent user experience.

On the other hand we have a bottom-up, as I already said "laissez-fair" approach that Google suggests. I personally (who would have thought otherwise) prefer the Google approach, despite the fact, that I believe that the iPod/iPhone platform is very well designed. Having said that, Android has still a long way to go to come to be comparable to the iPhone. I really hope that the mobile-phone dinosaurs are finally blown away by proper technology and platforms that allow solid software engineering. The past has proven that the open source model can attract a huge number of developers and great products, but it also showed (but this is a topic for a different posting), that the open source model also had a problem in providing a consistent and user friendly UI experience (particularly for non-experts); this is where Apple is "at home".

And the winner is...? Yet to be seen.


ChristophD said...

Interesting food for thought...

I added some of my thoughts on this topic over at

Markus Demolsky said...

I've found a blog abound Sun and iPhone

Alexander Schatten said...

Yes, I am aware of the fact, that Sun tries to get Java on the iPhone. However, this whole issue is all but clear. Will Apple support that?

How about the iPhone APIs, will they be fully accessible via Java...

My feeling is, that Java on the iPhone will more likely be a second class citizen-particularly compared to Android of course.

However, I am looking forward to a Java RE, maybe I can develop some stuff for my iPod Touch then...