I had a conversation last week with a couple of developers who work on both Google Apps Marketplace software and Apple iOS applications (they eschew Android and its market for reasons we'll see later). There's a fair amount of cross-pollination among programmers these days as many Apps and sophisticated Web platforms leverage similar coding skills. Similar coding skills, however, and the ability to really crank out high-quality software across platforms are two different things. Complicating matters further is that Android is barely a single platform anymore. One has to wonder how much the fragmentation of the OS and related hardware is interfering with developer innovation and what should be the utter dominance of Android.
Jason Hiner posted a great piece this morning on (among other things) the failure of the Open Handset Alliance to deliver the open, transparent, easily-developed platform it promised. In fact, it's become clear that Android's greatest strength, namely its ability to be customized and repurposed to meet a variety of carrier, customer, and hardware needs is also its greatest weakness. As Jason wrote,
...Google is proving to be a poor shepherd for the wolves-in-sheep’s-clothing that make up the telecoms and the handset makers in the Alliance.
As a result, we now have a situation where the U.S. telecoms are reconsolidating their power and putting customers at a disadvantage. And, their empowering factor is Android. The carriers and handset makers can do anything they want with it. Unfortunately, that now includes loading lots of their own crapware onto these Android devices, using marketing schemes that confuse buyers...and nickle-and-diming customers with added fees to run certain apps such as tethering, GPS navigation, and mobile video.
iOS, on the other hand, runs on a very tightly controlled set of hardware with no real control or customization exerted by AT&T. As a result, developers continue to be drawn to this platform where their Apps work as expected and provide an optimized, high-quality user experience no matter what. It's impossible for Android developers to optimize based on hardware (e.g., screen size, processor speed, memory, etc.) or software (versions of Android ranging from 1.5 through 2.2 are floating about in the wild and have successively brought major improvements in functionality that developers can exploit). While Apps that cannot run on a given version of Android shouldn't surface in the Android Market, developers must choose between creating the most innovative apps on cutting edge platforms and hitting the lowest common denominator to reach the largest audience. Such is not the case on iOS, to the detriment of freedom and all those wonderful ideals but to the absolute benefit of developers (and, in many ways, customers).
Long term, it's becoming clear that truly innovative apps and the highest quality web experience will be the major differentiators for mobile operating systems and the phones that run them. Brilliant apps need an invested developer community and faith in the platform. No single killer platform has emerged around which developers can rally, Google hasn't developed robust mechanisms for dealing with software fragmentation, and carriers and device makers have proven unwilling to standardize, making Android less compelling (despite its exploding market share) than iOS for the most powerful apps.
By all rights, Android should be crushing iOS under the sheer volume of carriers and device makers that are using the OS. It's holding its own, but the fragmentation that Tim Bray has largely dismissed seems to be standing directly in the path of wild innovation and Google's world domination of mobile platforms. That is what you want, right Google? Then it's time to use some of your corporate muscle and bring your partners to a point where developers are as universally enthusiastic about Android as they are about iOS.