Not to be too condescending, but I think it's amusing to watch the old-school techies in the past couple years finally get around to paying attention to the mobile market that I've had been ranting about exclusively for the better part of the past decade. Tim Bray has a post today about the Android OS, dismissing the idea that there's splintering going on, or that it's a big deal if there is.
Well, actually, I have to say there *is* splintering going on, and it *is* a big deal. The splintering isn't in the traditional "binary break" style that one normally thinks of when using that word, but it's still just as deadly to a platform.
First, back up and look at a couple other mobile OSs, and how they handle compatibility:
The iPhone and iPod touch run the latest and greatest version of their OS because of Apple's tight control of the both the hardware and software, and ability to ignore the carriers. Pretty much, no matter if you have a first generation EDGE version of the iPhone from 2007 or the latest 3GS, the OS is the same, and thus the user and developer experience doesn't change either. (Except in instances where the iPod touch user doesn't pony up the $10 or whatever to upgrade - or a developer uses the new graphics hardware on the 3GS). We can all see the benefits of this model.
On the flip side of this is what Nokia (my employer) has done, which is slightly tweak the Symbian/S60 version of the OS for every new phone that comes out, letting the carrier add additional tweaks, and not really attempting to homogenize the various versions through (rarely applied) updates. Multiply the number of models per year (10-20) by the number of years Symbian's been around by the various custom carrier modifications, and you get complete developer and consumer confusion.
Okay, now you have Android. I recently bought an Archos 5, which I'm very happy with as a gadget. However, it's stuck on v1.5 of the Android OS right now, with a custom GUI extension added to make up for its lack of keys and home/menu/back. Additionally, it's not a Google-sanctioned distribution, so there's no Android Marketplace, nor able to run any of the important Google apps: Mail, IM, Maps, etc.
So is there binary compatibility? Sure. But only if the apps are written very carefully (or simply). Case in point is an SSH app I downloaded for the Archos 5 - it assumes you have a real keyboard, and thus doesn't provide the ability to use important combos (like control+anything) since the virtual keyboard doesn't do that. It's thus unusable, though it does "run". Additionally there are apps that ACTUALLY just won't run for whatever reason - no idea why maybe API calls or assumptions about file structure that shouldn't have been made, or whatever. On the Archos forums, users are swapping lists of apps that work and don't work (or semi-work).
As a technical user I can understand why this is happening - the platform is young, manufacturers are rushing out products and there hasn't been any sort of standards put in place yet.
But to a normal end user - they expect that if they see the friendly green Android on the box, that it'll work the same and run the same software as their shiny new smartphone. Right now that isn't the case, nor will it be in the foreseeable future. Compare the Verizon Droid to the T-Mobile G1 to the Archos 5 to the various other products (eBooks, HTC phones) running on Android and you get very vastly different experiences and capabilities. Whether or not that's "technically" splintering doesn't matter - it makes things difficult for everyone involved: developers, consumers, manufacturers, etc.
Can you write an .apk application that runs on all devices? Theoretically, yes. But not without testing on an ever-increasing number of gadgets. This is the problem that Symbian and J2ME phones have, and the road that Android is headed down if Google doesn't reign in control and quickly. Differing OS versions, different manufacturer and carrier customizations, and various app stores are going to hobble the OS before too long.
All that said, I still believe it's got a real future after using it regularly on my Archos, but Google needs to get control quickly. I had originally suggested using the Android logo and trademark (which they may or may not own) as a way of ensuring compatibility, but it seems the logo is creative commons. So maybe they need to come up with an "Android Approved" logo or something.
Regardless, the point is that splintering is happening, right now, and it's not something that'll fix itself without serious effort. The alternative is not a free-market style survival of the fittest, but simply a broken ecosystem and a lost opportunity to create a truly open alternative to the Apple mobile juggernaut.