Tuesday, August 25, 2009

The (lost?) Android Opportunity

At the time Apple initially released the native SDK for the iPhone some people argued that Objective-C was a poor choice as a development language. I'd now argue that either they picked the right language, or more probably (at least within reason) the platform was good enough, attractive enough to developers, that the language they chose didn't matter all that much. Developers were willing to spend the time learning Objective-C just so they could write code for the iPhone.

I wasn't a long time Mac developer when the iPhone appeared. I learned Objective-C because I wanted to develop for the iPhone, not because it was widespread, or particular popular.
What's the difference between a Cocoa developer and a large pizza? A large pizza can still feed a family of four. - Mike Lee

Although its popularity is now on the rise; the language jumped 22 places in the TIOBE index in the last year, entering the top 20 "most popular" languages for the first time.


The popularity of Objective-C as measured by its TIOBE index. Climbing from 40th position in the rankings in 2002 to 19th position this month, with almost all of that growth in popularity being since the release of the iPhone.

After learning the language I found I actually quite liked it, it was powerful, and because it allows dynamic typing and binding it was flexible. Something I'd grown used to after years of using loosely-typed languages to get things done.

The development environment Apple provide, Xcode and Interface Builder, is the best I've come across. Perhaps not the most powerful, but they're the easiest to use, and because of the late object binding that Objective-C allows the heavy integration of Interface Builder into the development process hugely simplifies creating user interfaces. It also removes large chunks of glue code that, in other languages, you'd have to sit down and write yourself.

However while I downloaded the Android SDK from Google, I've done little with it. Despite the fact that Google picked Java as their development language for Android, a language I already knew fairly well. I even had a couple of ideas for the first Android Developer Challenge, and a couple of people were interested in working on them with me, but in the end I didn't bother.

The Android platform isn't that exciting, and until recently I couldn't pin down why. John Gruber writes in the Daring Fireball about the Android Opportunity complaining that the Android state-of-the-art is even further behind the iPhone than when the G1 was announced back in 2008.

The reason I wanted to develop for the iPhone was that is was so much better than the competition. Regretfully the Android handsets that the manufacturers have produced so far just, well, aren't.