Fragmentation vs. Obsolescence In the Android Ecosphere
whisper_jeff writes "Engadget has an interesting article up discussing whether or not Android is fragmenting. While the article discusses the concept that it may be more about handsets becoming obsolete at a dramatic pace rather than the OS fragmenting, it also begins by noting that there are currently five different versions of Android on the market, which implies there is a notable degree of fragmentation. Regardless of it being fragmentation or handsets becoming obsolete to new feature sets in a terribly short period of time, I believe this development cycle could turn casual consumers away and hurt Android's chances for long-term mainstream success."
As an iPhone developer who would love to make the jump to include android I am very scared about the large mishmash of versions and hardware. Talk about a testing nightmare. Simulator testing is great but as we all know nothing beats the real thing. I don't feel like buying enough handsets to cover my desk.
I wouldn't be able to keep all the chargers straight anyway.
The flash runtime has experienced the same problems as it was a developing platform. Flash 8,9 and 10 are all still in use today and have different feature sets and programming models. I realize the analog is slightly different as android is an OS and not a runtime, but the fact remains that progress requires this. We as geeks bemoan long development cycles and slow progress. Well the way to get around slow progress is quick iterations, and that gets to you to fragmentation. Adobe has realized this and their rate of development has slowed as they have stabilized on where they want the platform to go. Give android a year or so, and once Google realizes where it wants android to go, the iterations should slow down dramatically, and fragmentation will be a thing of the past.
je suis parce que j'aime
With apologies to... Henry Spencer:
"Those who fail to understand apt-get are condemned to re-invent it, poorly."
Crumb's Corollary: Never bring a knife to a bun fight.
Arguably, there are two broad classes of users/applications for Android: the ones that need a cheap phone OS that sucks less than your average "dumbphone" or "featurephone" OS(both in terms of general usability, and in terms of the dev team's ease of getting things going) and the ones who want an "Android smartphone", and wish to run "Android applications" on it, and so forth.
You would expect the former group to be heavily fragmented; but for that fragmentation not to matter very much. For any device where Android is simply being used as a cheaper or easier alternative to a dumbphone/featurephone OS, or even to some other embedded operating system(as with a cheap digital photoframe or GPS or something), the version, and most likely the applications, the device ships with will be the ones it dies with. Fragmentation will be inevitable; but also won't matter much(upgrades will generally not be expected, outside of a few tinkering geek who can roll their own, device developers will use the Android version of their choice when developing. No big deal.)
The trickier case is the part of the market that directly competes with iPhones. Here, updates are generally expected, adding applications and having things work is a prerequisite for success, and fragmentation is a bad thing. Google's own blessed handsets seem to be avoiding this reasonably well(within the limits of hardware advance. The G1 is starting to show its age; but so is the gen-1 iPhone); but some of the tier-2 carrier stuff is looking a little more doubtful.
Personally, I suspect that the critical thing will be whether or not expectations are correctly matched to devices. Having more or less fixed-spec "featurephones" being based on Android isn't bad for Android unless those phones are then sold to unwitting buyers as being equivalent to the high-end, frequently updated, fully app-compatible "Android Phones". If they are just sold as featurephones with decent browsers and mail clients, no harm, no foul. If they are (essentially dishonestly) sold as cheaper-but-equivalent alternatives to the properly updated Android devices, there will be a lot of unhappy customers stuck with outdated firmware.
My Droid Eris was on Android 1.5 for the last several months and I noticed very few differences between it and my father's Droid with 2.0. Yea he had voice nav, and he got live wallpapers when the 2.1 rolled out, but the core features that made me love the OS were largely identical (push gmail, widgets, great web browsing experience, etc.).
The only people to be hurt by the 'fragmentation/obsolescence' issue is developers. I don't want to downplay the developer issue, but as far as consumers are concerned , most of the big-time apps have no trouble supporting multiple iterations of the platform.
...But is phone manufacturer. If you make the phone and it just runs a vanilla Android OS, then you can theoretically push the update out without too much pain. The problem comes from the phone manufacturers who are trying to "improve" the OS by adding things like Sense UI and Motoblur. Yeah, some of these improvements are better, but others aren't any better than what comes in vanilla, and even more are worse. The fact that the modding community can turn on OS around in a few weeks and push it back out to the device is testament to how easy it is to put these newer versions of software on the phone, and it just the manufacturers trying to add their own crap back on that is the issue.
These "growing pains" need to be worked out, but app developers will quickly learn to check versions at runtime to make sure most of their features will work in older (or newer) versions of Android. Apple took care very well from the start, but they've had lots of consumer software experience. Goole & Android will get their act together ... it will just take a little time.
I thought Apple's approach was to strictly control both the hardware platform and the developer's tools, both to ensure they will work together and also to make it highly inconvenient for developers to port their apps to other platforms like Android. That sounds like marketing and vendor lock-in experience. The term "software experience" seems to suggest that they have tackled the complexity involved with developing for diverse systems instead of avoiding it.
It is a miracle that curiosity survives formal education. - Einstein
By this summer you'll have to support the 1G, 2G and 3G versions of the iPod touch, the 1G, 2G and 3G iPhones, the 3G iPhone with more RAM and a faster processor, and the 4G iPhone with both more RAM and a higher resolution. Oh, and the iPad of course.
The biggest new challenge with "iphone 4g" is the higher resolution - some say this will be 960x640 (i.e 2x the current resolution hor/ver), which is imho unlikely as this would be the first use of such a LCD resolution ever.
To me this doesn't sound simpler than the Android fragmentation, at least with Android the market lets you know which apps you can install, and the vast majority actually works with 1.5. With the Appstore you might only get "oh, don't install this on an iPod touch, it won't work".
Android is also more developer friendly, e.g. the new feature introduced just before the 2.2 release - at least my N1 got a "report this crash button" before I upgraded to 2.2. (I don't want to speculate on the developer friendlyness of Apple, but recent news haven't been very good.
"Andy's point was simple. Older Android devices that can't be upgraded to newer versions of the OS or run newer apps are no different than an iPhone from 2007 not being updated to OS 4."
Rubin obfuscates the problem by trying to simplify things, which is working. The issues:
* my android device can't be upgraded
* my android app don't work on x version of android
* my android app doesn't work on y version of hardware
iPhone 4.0 is irrelevant, since it doesn't exist yet. And it is not like iPhone 3Gs not moving to iPhone 4. It's more like an app on an iPhone 3G with iPhone OS 2.0 can't run iPhone OS 3.0 because (a) the device itself can't be upgraded to iPhone OS 3.0, and/or (2) because iPhone OS 3.0 isn't backwards-compatible with iPhone OS 2.0.
I have plenty of iPhone apps that were first-generation that still work. That sounds like an unlikely situation in the android world. I also have apps that work on all versions of OS and hardware. I have a few that require specific features (GPS) that don't exist on 1.0 hardware...so obviously don't work on newer devices. I had a few apps (WiFi scanners) that died under OS 3.0 that used to work.
It sounds, however, that compatibility across android and handset versions is not only not guaranteed with android, but that the incompatibility is to be expected...according to their chief architect.
Nice.
iPhone apps sell to a combined market of iPhones, iPod touch, and iPad.
There is little fragmentation on the iPhone market. 90% plus are running version 3.0 or higher.
RIM sales are larger than iphone but our iphone app outsells the RIM version by about 5 to 1. RIM users are just not as likely to buy apps. Android US sales are substantial but not yet clear of the trend going forward. It will be interesting to see how things shake out in one year or so.
Of the '5' versions, only 3 have anything resembling significant usage in the wild (1.5, 1.6 and 2.1). Multiple phones have had 2.1 upgrades released for them since the statistics were gathered, thus throwing even those statistics out of whack. Once all the handsets that are capable of running 2.2 are upgraded, I think that will be a pretty stable platform for quite some time - most everything that people have been clamoring for in Android is either in or supported by, that version (Flash, App2SD, bluetooth voice calling, JIT, etc). Many of the handsets that are older and 1.5/1.6-based might not perform all that well with these new features (if at all) due to constrained physical resources (slower CPU, less RAM, etc).
Coming out with new hardware now with anything less than 2.1 should be a crime, though. I'm glad they've said the EVO 4G will have a 2.2 upgrade in July. *whew*
I agree to some extent. Though I think it is a fools who runs in the sight of adversity. This doesn't mean that the environment is adverse, on the contrary, it is far from adverse. Engadget has no clue, they don't know what they are talking about. The Andriod is no more fragmented than Windows, the Mac OS, the iPhone, or any other. They are making much ado about nothing. Fire the editor for ruining the careers of the journalists by publishing this crap!
One has to expect fragmentation and that the fragmentation will decline as models age out. Those consumers that don't have a phone with touch will just give up the ghost and get a better more modern phone over time. Apples OS4 for the iPhone won't run on the first two generations of the hardware. The coming updates beyond OS4 will fragment the iPhone more, and that's coming from "one company".
Let's be real. The talk about fragmentation is a marketing ploy by the competition to keep developers and consumers from making the leap. An intelligent mind sees that fragmentation is everywhere from the desktop to the phone--in every device and in every OS.
You can lead a man with reason but you can't make him think.
The fascinating thing about "fragmentation" is that it's a problem we just made up. Apple's Mac line, let alone the Windows world, have more hardware and software diversity in one minute than Android has all year. Yet no one goes around suggesting that "fragmentation will hurt the PC market's long term chances of success."
This feels like a FUD bullet point created by an Apple astroturfing firm, whether it actually is or not. The whole "fragmentation" line of thinking presumes a world we have never had, and which I doubt anyone would willingly choose: one where a single manufacturer rules, producing a few nearly perfect products in a graceful, gradual schedule.
The funniest part is that this meme is useful for identifying people with no Android developer experience. After having used both the Apple SDK and the Android SDK pretty extensively, you can see why Android will win in the marketplace, and win so quickly. Never has there been such a beautifully organized, transparent, open, easy zero-to-development experience. In a world where most platforms don't even think about API versioning until it's too late, Android builds in an elegant management system from the beginning. "All 5" API revisions are accessible via a pullout menu. You default to the lowest, so that your app is compatible with all devices. Easy done.
And if you need something that a newer OS revision offers, everything about it makes it easy to target the minimum revision required.
The documentation is organized and straightforward. Running and debugging your app is a keystroke away, with a hardware-level emulator that's trivially configured to match whichever devices you prefer to test on - or all of them.
It's ironic, really. Hardly anyone has ever done such a good job of managing fragmentation, yet all this refinement for a platform that has less diversity (especially at this early point in its life) than almost any open platform I've seen that's this widely used.
In short, LOL.
Tired of Political Trolls? Opt Out!
Control. If they give up that, they might not be able to force you on to their services.
Motorola's the worst, since they sign the bootloader, kernel, and file system. The devices won't boot if any part of that has changed, and the only device you -can- change is the DROID (though the Milestone variant is locked down, last I checked.)
fragmentation spells out one thing for Android: FUD.
it's called: we don't have anything else to complain about, so lets imply the shit is weak (when it's running quite strong and becoming way more polished than iphone).
But yeah, linux is uh, dying too! I mean, fragmentation!
Give me a break.
Silly question I know, but reading your post just makes its title look all the more ironic.
Hardware and legacy-OS "fragmentation" exists today in the iPhone ecosystem - nearly half of iPod Touches are running older systems, and there are already iPhone owners who will never be able to upgrade to OS 4 (even the beta). It's obviously greater in Android due to the larger choice of hardware and more rapid OS releases. Some may prefer a slower-moving target, but the monolithic, our-way-or-the-highway approach that's required to achieve this has too many well-documented disadvantages to be suitable for everyone.
[Backwards compatibility] sounds like an unlikely situation in the android world
That's just plain uninformed. No APIs have been revoked or broken; the only 1.0 apps that don't work today are the ones that did naughty, undocumented things - like any other platform. In fact, Android's VM model, excellent API version management and Marketplace manifest model make it easy to allow apps to run on any version of Android they can manage, or to target the app at whatever specific set of hardware features are required, making forward compatibility far less of an issue that for e.g. Linux or Windows (can't speak for iPhone OS personally). And Rubin points this out.
Why would anyone engrave "Elbereth"?
This is going on for years on Symbian scene and J2ME (Java Micro), same thing being said over and over and unfortunately some developers seem to actually believe it.
I will give one single title: Opera. Opera Mobile runs on ANY Symbian S60 and Opera Mini runs on ANY J2ME client. There is no "Opera Mobile for Nokia E71", the drop down menus on some download may confuse you. It is just, some developers, especially the ones directly selling (no trial) apps want to make sure the application will run instead of living hassle to give money back or bad feedback. Another thing is, root certs which devices have. Some have Verisign, some hove Thawte or both. They want to make sure (especially with J2ME) that application won't be treated as "unsigned", especially network aware apps.
Of course, if you see something like "S60 V3 FP2", it may confuse you. It just says "Devices with compass built in", much like iPhone 3G vs 3GS and I don't see anyone talking about fragmentation on iPhone scene.
So J2ME is really "write once,run anywhere" and Symbian is really device independent. Of course, the Developer makes the difference.
Dude, we code in Java targeting a virtual machine (it's called Dalvic). You don't worry about the hardware underneath - Android's APIs and virtual machine takes care of all of that stuff for you. You don't even have to have an Android device to do development. The SDK comes with an emulator that lets you build and test your apps on Windows, Linux or MacOS.
Now that we've cleared that up, head over to the Android site and download the SDK and learn to write an app instead of worrying about phone hardware. There's nothing stopping you. The SDK is free.
-- $G
The default for an Android developer should be the N1. The "weird screen" isn't a factor in practice, there still aren't any other phones with significantly better specs, and it's virtually guaranteed to get timely updates for the next few years because there are no incompetent and/or malicious middlemen.
How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
App developer should realize that there is a world outside the US [and Europe], where:
1. Phones are sold unlocked more as a rule than an exception.
2. Enthusiasts change phones frequently
3. There is a big market for cheaper and second hand/older gen. 'smart' phones.
Android fits in well for these market. This is also the exact reason for the abysmal sale of iPhone 3G/3GS in India and China.
7-8-9-10-0
Most of the features that you indicate as being variable on the Android platform are also variable on PCs. Yet, somehow, application development on the PC has not died and software developers have coped despite Apple having full hardware and software control on the competing Mac platform. Is the CPU on the original iPhone still the same as that on the iPhone 3Gs? Is the display resolution the same on the iPhone as on the iPad?
The Android market is certainly different from that of the iPhone, and will require additional skills and practices. However if the response of established iPhone developers is to shun those added challenges, then all it does is open the door to those who are willing to tackle them.
Laissez lire, et laissez danser; ces deux amusements ne feront jamais de mal au monde. - Voltaire
I won't be buying an Android phone until they let me myself upgrade the OS with the latest or a modified version at my will.