According to Gadget Lab, app writers have somehow just realized that the reason open source fails in customer-facing use cases (as opposed to back on the server in a locked room) is that it splits like a bead of mercury into a zillion different forms, and nobody can write apps that work across the platform because, strictly speaking, there is no “platform.”
There are just a bunch of different devices that have a lot in common with each other but aren’t quite the same. Trying to turn that into a “platform” is like trying to build a porch using three hundred pieces of wood, none of which are the same size.
This does become something of a problem when you are trying to build and maintain something as complicated—and with as many dependencies—as an Operating System (OS).
Just think of all of those different desktop Linux "distros"; think of all of those little tweaks and codebase differences that they employ and now imagine trying to develop for them.
And, as far as a user is concerned, the user interfaces suffer the same fracturing—especially as you can apply different UIs to varying distros, or even the same distros.
(In my real job, we have had enough problems developing software between different versions of Coldfusion—and that is just one server application from one company.)
Dear friends, this is only going to get worse, not better. Think about it. Every handset maker wants its device to be different. And special. So they intentionally tweak the OS to give themselves what they think of as an “advantage,” when really it’s nothing of the sort, because all it does is prevent ISVs from writing apps for them. Even if the handset makers weren’t totally short-sighted and evil, there’s the competency issue — ie, even within a single company you’ve got a bunch of different teams of engineers, and they’re all using whichever version of Android was the latest and greatest when they started out on their project, or whichever version they happen to like best, and they’re all making their own tweaks and changes trying to outdo the guys across the hall, or in the next building.
Those Open Source projects that have worked—Firefox and the other Mozilla applications spring to mind—have done so because they have had one controlling entity ensuring a properly documented and linear development path.
It's worth bearing in mind when you look around and wonder why Linux is not more popular...