Tim Bray, Android’s Compatibility Program Manager:
Literally before the close of business on the same day we announced Android (4:46pm to be precise), I saw the first article about Android “fragmentation.” The first day wasn’t even over yet, and the press had already decided that Android would have a “fragmentation” problem.
The thing is, nobody ever defined “fragmentation” — or rather, everybody has a different definition. Some people use it to mean too many mobile operating systems; others to refer to optional APIs causing inconsistent platform implementations; still others use it to refer to “locked down” devices, or even to the existence of multiple versions of the software at the same time. I’ve even seen it used to refer to the existence of different UI skins. Most of these definitions don’t even have any impact on whether apps can run!
Because it means everything, it actually means nothing, so the term is useless. Stories on “fragmentation” are dramatic and they drive traffic to pundits’ blogs, but they have little to do with reality. “Fragmentation” is a bogeyman, a red herring, a story you tell to frighten junior developers. Yawn.
This “shrug it off” attitude is concerning. Android is fragmented the numbers don’t lie. It’s inevitable when you have a platform built by multiple vendors. Right now, there are 3 major releases of Android in the wild — 1.6, 2.0 and 2.1. Each has different API sets and features. Software that runs on some phones doesn’t run on others, and while the Android Market filters out non-compatible software, it makes for a broken experience. Telling a friend with an older phone about a sweet new app can lead to jealousy and frustration for both users.
In many ways, Android is like Windows. Software written by one company running on countless companies’ hardware has been Microsoft’s model since the beginning.
Unlike Windows, Google allows companies like HTC dig deep into Android and customize it how they see fit. Android is far more open than Windows. PC makers can add stuff on top of Windows (hello, bloatware), but Android handset makers can alter Android itself. The difference is a big one.
Fragmentation is a by-product of being open.
But openness isn’t the only thing that leads to fragmentation. Even the iPhone platform — with hardware and software both built by Apple — suffers from feature fragmentation based on the age of the device. Original iPhone owners can’t currently send or receive MMS messages, and wont be able to install OS 4 when it is released later this year. Only the iPhone 3GS and the next iPhone will be able to fully take advantage of OS 4’s multi-tasking.
Age-based fragmentation is inevitable. Apple gracefully depreciates older devices. Android owners don’t often get such an easy let down, however.
The biggest reason behind all of this is that Google doesn’t handle the software updates itself. Google announces and posts new code, but leaves implementation up to carriers and handset manufacturers.
HTC is one of the worst at pushing out updates. Their Sense UI takes a long time to update, leaving their phones a version (or more) behind phones running stock Android. For instance, the Hero is just now getting bumped to 2.1, even though it has been out for months and 2.2 is around the corner. And that is just on Sprint. Cellular South Hero owners have no update in sight.
The pace of Android itself isn’t the only factor in fragmentation. Hardware manufacturers are pumping out new phones at a neck-break speed, leaving every “top Android device” in the dust of another device just months later. The Droid enjoyed a dominant position for a very short window before the Nexus One was announced. The only reason the Droid is still so popular is that it is the best non-Sense Android device on Verizon, as the Nexus One never made it to Big Red.
A simple fix would be to slow down Android releases, and force manufacturers to guarantee updates for a certain time period after a phone is discontinued or replaced. At the very least, that would make the depreciation of handsets a lot more even across the board.
I don’t see Google implementing any sorts of rules about this, though. Which is really too bad. Unless they do, consumers will continue to be at the mercy of carriers and handset makers who want to sell more devices.
And that isn’t good for anyone.