If you have ever developed for Android or BlackBerry you would quickly realize that having different screen resolutions and sizes, as well as having different OS versions, isn't that big of a deal. A tiny bit of extra work goes a long way when it comes to working with these platforms.
Also, the sheer volume of Android phones means that supporting 2.1+-only is not that big of a loss (You still hit 60-70% of Android users), and dropping support for older BlackBerry devices (pre-4.5) isn't a big deal either.
If we where looking at 1920x1200 vs 1620x1020 then resolution is not much of an issue. But, at lower resolutions you need to know where each pixel is to produce a really high quality interface.
Also, if limit yourself to a subset of Android phones that have the features you want, it's harder to justify supporting them. It's one thing to think 10 million users of this App store it's another thing to say well 6 million is still enough to go for. etc.
It's not always as easy as dropping support for older devices/OSes. When you have to support older systems (for client requirements, as an example), it goes from a "tiny bit of extra work" to "a tiny bit of work and a whole lot of extra testing". Just adding a single different type of device (i.e. supporting Blackberry Bold and Storm) almost adds twice the testing effort.
I'm not trying to say that developing for resolution independence is extremely difficult... but it's no walk in the park; it takes time. You truly have to ensure that your application can run on a wide gamut of devices and that the user can interact with it appropriately.
Then, too, there's the recent survey of developers by Appcelerator and IDC that found an overwhelming preference for Android over iPhone.
Bullshit. Android rated higher in some questions, but trying to pass it off as having found an "overwhelming preference" (for either platform) is a gross distortion. From the top-level findings of the survey:
"Apple iOS continues to dominate in all categories relating to market/revenue opportunity and current devices. iPhone continues to lead overall developer sentiment with 91% saying they are “very interested” in developing for the device compared to 82% for Android phones."
Overwhelming, huh? The rest of the results are kind of interesting and kind of predictable, but definitely not what the author is trying to pass it off as.
This whole discussion about fragmentation is a tempest in a teapot.
The fact is, people are buying lots of Android handsets. If you've used the Android Market, you'll know that there are lots of apps. The apps in Market may not be as nice or as many as those in the App Store, but it's enough to sell lots and lots of phones.
If you're writing mobile software right now, you should be targeting both iOS and Android (and probably BlackBerry) if you want to get your application in front of as many eyes as you feasibly can.
If you're writing mobile software right now, you should be targeting both iOS and Android (and probably BlackBerry) if you want to get your application in front of as many eyes as you feasibly can.
Yup. That's why Apple has always sold more computers than IBM compatibles. The fragmentation in the hardware market prevented developers from using MS Windows. And all those versions every couple years... Man, just horrible.
Oh wait, that's exactly the opposite of what happened.
Choice is not bad. Differing hardware doesn't matter.
That would be true if the fragmentation in the hardware was between Sparc, Alpha, X86, Arm, Etc. The market example you attempted did the opposite, it consolidated around X86.
"Of course, specific choices don't tend to survive if nobody wants them--that, too, is part of a competitive marketplace. If there isn't demand for them, individual choices will disappear."
The competitive market between desktop Linux distros is small and weak compared to the desktop OS market as a whole. Quality control seems non-existent from a naive user's perspective, as things often just don't work like they claim to, or work for the moment and regress when there's a software update they were prompted to install.
This isn't an insoluble problem, but it's hard to see how we can get there from here. Microsoft solves this problem (in users' minds, at least) by throwing enormous resources at QA and bugfixing -- more resources that all desktop Linux vendors together even have. Apple solved this by limiting hardware to a comparatively few models, but if a desktop Linux vendor did this and had enough sales to justify it, they would have already either defragmented the market or grown sales enough to escape the trap.
Basically, the lack of quality control in desktop Linux distros seems mostly attributable to the fragmentation, as distros try to differentiate themselves via UI design and package managers rather than helping solve the upstream problems that seem to be holding adoption back.
The server-side software I write works on any Linux server, be it Red Hat or Debian-based, and web-pages are served properly on any desktop, including Linux (minus desktops with IE6, for which I don't pay enough attention).
> the lack of quality control in desktop Linux distros seems mostly attributable to the fragmentation
I'm counting ~ 185 words in your reply, and you still haven't defined the "fragmentation" you're talking about, just some random rumble about lack of QA.
The only thing Linux does differently (compared to alternatives) is a lack of binary backwards compatibility, but this is by choice since most software for Linux comes with source-code and can be recompiled. The other major gripe is that you've got multiple APIs you can choose to target (be it graphics, sound, UI) ... but every major distribution has compiled packages for everything that you can pull as dependencies.
Case in point, XMMS, an ancient Winamp clone written with GTK+ ver.1 can still be made to work on every Linux distribution available.
I cannot say the same thing about OS X, which breaks backwards compatibility more often than Linux (like once every 2 or 3 versions).
I think Jobs is absolutely correct, in the context of consumer-facing mobile app stores (and probably consumer computing in general). Choice is great until it becomes a barrier to purchase. Non tech-savvy types flock to Apple because it "just works". No education required, no need to decide between six different almost identical models. The purchase is brainless, and the consumer gets a device that does what he expects. A savvy user who wants to tinker and operate outside a prescribed set of use cases will want choice--Android. Everyone who purchased the iOS product had full knowledge of what it can do--and doesn't care that it may not be able to do anything/everything else.
If only "savvy users who want to tinker and operate outside a prescribed set of use cases" want to use Android devices, why are Android and iPhone neck-and-neck in sales figures?
Very sloppy reasoning, bordering on the fallacy of false dichotomy.
<"Fragmentation," as I suggest above, is simply a derogatory term for "choice," something not only valued but expected in most product categories. >
Errr, no Katherine. Fragmentation is not a synonym for choice - in fact it's very nearly an antonym. Choice means that I can substitute one product for another - I have a choice!.
Fragmentation, at least in the sense that Jobs and Strohmeyer both clearly meant, is about interoperability. That is, if I buy a Product 2 to work with Product 1 that I already own, will Product 2 continue to work if I replace Product 1 for a new Product 3. The likelihood of this question having a negative response is a measure of the fragmentation of the market. Obviously, if changing from Product 1 to Product 3 means that I lose the ability to use Product 2, that is a cost barrier that is going to make me less likely to change, ie have less choice.
> Fragmentation is not a synonym for choice - in fact it's very nearly an antonym.
Err, not exactly. The word 'choice' doesn't inherently imply that each option must never contain any constraints (even though it is generally desirable to minimise them). In fact if all the options are identical in result it's not really a choice. So why do we have all these different product options in so many categories? Why doesn't someone just work out what 'the best' one is, so we can all save the hassle of having those other options? One reason is that people's requirements actually are different. The benefit of choice is that individuals get to decide on which constraints and characteristics suit them best. The longer term benefit is in the competition between different approaches and organisations it fosters.
Interoperability is a property referring to the ability of diverse systems and organizations to work together (inter-operate) (from wikipedia). To me this sounds a bit like the 'inter' part implies separate entities or 'fragments'. I'm not even sure if the word really applies to a monolithic platform like iOS.
Fragmentation in software is not the same as competing laundry detergents, even by the same company. I'm not a detergent engineer (a real job title?), but I bet that if the scent in one detergent proves popular, it's not so hard to add it to another.
By contrast, if there are 30 branches of an OS, although it does allow different ideas to compete, it also divides up the efforts of people who want to contribute, and even complicates the decision to contribute at all. And it's not always trivial to take good ideas from one project and port them to another.
Is fragmentation overall good or bad? Hard to say. But it does present challenges that go beyond just competition.
In short, sometimes the most helpful answer to "I'm not happy with the direction of this project" is not "fork it," but "talk and compromise or deal with it."
I do support/sysadmin work for companies and executives.
Android phones, on the whole, lack polish, and often have unexpected behavior.
For example, just yesterday I had a non-technical customer who got a Droid X, with 2.2. Had battery life issues with the phone, and frankly didn't want/need to learn about task management (understandable - do you make the company CEO look at your server's process tables for zombies/runaways?). Plus, the phone had linked a bunch of unrelated contacts between his Exchange and Google accounts, so his contact came up linked to his wife's hairdresser, for whatever reason. That's about par for the course with Android phones.
My take on Android is "great if you're technologically competent and able to deal with issues that come up, not so great otherwise". None of these people are going to run custom ROMs, or take the time/know how to get the crapware off their phones. They're going to be left behind on old versions of the OS as soon as the vendor drops support.
None of these (apart from the unusual contact linkage) are technical objections about Android per say - I have a good friend with a Droid X and he's customized the heck out of it - it looks/works great and has great battery life. He also knows what he's doing. Most people aren't him.
I don't see a good solution to this that would survive carrier intervention...
And how does that differ from Windows Mobile? I helped a person running Windows Mobile 6.5 with battery issues. Turned out he kept opening applications and not closing them. The exact same problem, but on a different system.
Now I'd argue Windows Mobile is crap, but this kind of stuff is par for the course. And it really has nothing to do with fragmentation which is what this article (and thus this discussion) is about.
Equating fragmentation with choice doesn't do the phenomenon justice. The question isn't if there should be choice: it's quite clear that there should be. I'd suggest that Jobs would not object to this.
But it's crucial to have sensible choice. Consumers get to choose between iOS, webOS, RIM OS and Android. Well, theoretically at least. Instead they get to choose between iOS, webOS, RIM OS and several slightly different, often incompatible and almost always very much un-free Androids. That's the fragmentation problem - Jobs doesn't advocate NO CHOICE, he advocates GOOD CHOICE for the consumer.
I own an Android phone. The stuff Motorola has put on it, without any legal way of removing it, is crap and has nothing to do with vanilla Android. Friends own HTC phones. They have a different half-baked Android-y OS. This fragmentation is bad for the consumer. Choice - between truly different strands of Android - is good for the consumer. Don't conflate these issues.
Also, never mention Linux on the Desktop in any discussion. It's like waving a white flag. Personally, I run Ubuntu and Debian on all my systems. Still: not a compelling argument for anything. Especially since fragmentation IS a massive problem for "consumer Linux".
"Choice - between truly different strands of Android - is good for the consumer. Don't conflate these issues."
I think part of the problem is branding. When someone says they have an Android phone, how do you know what that means? Whereas "Fedora Linux" or "Ubuntu 10.4" are quite clear for those who care to differentiate.
If manufacturers and carriers and everyone else specified things like "HTC-modded Eclair Android" or "Stock Donut Android" or whatever, you'd at least be able to more easily choose between two phones. And with clearer choices, consumers could express their preferences in dollars more clearly.
I'd just like to quickly define "Fragmentation" from a developer perspective. "Fragmentation" occurs when I have to write code to support oddities on a specific device. Diversity is good. 'Fragmentation' is bad. I think it's an important distinction that's often missed in the constant Is-Android-Fragmented discussion.
I think there's a huge startup opportunity here for a new, high-quality Android app store. I think it would be very interesting to see a Market that only let in high-quality apps (I don't think this goes against openness, as users can still install any app they want, it just wouldn't be from this store).
Those sorts of marketplaces have mostly an exploratory role today anyway, the user goes there to find good apps, not specifically to download an app the user knows is good. If the store itself weeded out all the crapware, it could make a killing very very quickly.
It's is very difficult for a third party app store to get started on Android. To get a large number of users using it you need to get it pre-installed on phones before they are sold. Many carriers already have plans for their own app stores, however, or already have one like in South Korea. So that makes it even tougher to get deals like that.
Google doesn't allow app stores to be offered via the Google Android Market, so there isn't even a runner up option of having users download it through the channel many of them do have. Non-AT&T Android phones do allow installing from a URL. So conceivably users could get the app store from a URL, but it is even tougher to get users to do that than it is to get them to download from Android Market. They also have to enable the unknown sources option in their settings, which some of them won't do.
Without a large user base, developers won't post their apps to your store. I'm a developer and I've posted a few of my apps to third party stores. I get hardly any downloads compared to Android Market. So it just doesn't make sense for me, as a developer, to go posting my app to all these dead water third party app stores. There are a lot of them too. Hardly a week goes by where I don't get some spam email from a third party app store that scraped the developer emails off the Market listings. So even if I did post to a third party app store, it would be making a choice amongst a large number of them.
Going by all the chaff it's thrown up, lumping in desktop Linux with Android was the article's main rhetorical innovation.
I'm critical of Android's fragmentation problem, and I talk to other people who are too, but I've never heard anyone make the case that Linux is in the same boat. Kernel aside, the two camps of developers tend to have different markets, different distribution models, different funding sources, different UI expectations, different degrees of acceptable UI complexity, and different development timeframes. And when I say different, in most cases I mean "non-overlapping".
Have to agree with author and Android developers should just do what Apple/ Apple developers do and leave out features, or just don't support older versions.
[+] [-] jlgosse|15 years ago|reply
Also, the sheer volume of Android phones means that supporting 2.1+-only is not that big of a loss (You still hit 60-70% of Android users), and dropping support for older BlackBerry devices (pre-4.5) isn't a big deal either.
[+] [-] Retric|15 years ago|reply
Also, if limit yourself to a subset of Android phones that have the features you want, it's harder to justify supporting them. It's one thing to think 10 million users of this App store it's another thing to say well 6 million is still enough to go for. etc.
[+] [-] fourneau|15 years ago|reply
I'm not trying to say that developing for resolution independence is extremely difficult... but it's no walk in the park; it takes time. You truly have to ensure that your application can run on a wide gamut of devices and that the user can interact with it appropriately.
[+] [-] unknown|15 years ago|reply
[deleted]
[+] [-] GHFigs|15 years ago|reply
Bullshit. Android rated higher in some questions, but trying to pass it off as having found an "overwhelming preference" (for either platform) is a gross distortion. From the top-level findings of the survey:
"Apple iOS continues to dominate in all categories relating to market/revenue opportunity and current devices. iPhone continues to lead overall developer sentiment with 91% saying they are “very interested” in developing for the device compared to 82% for Android phones."
Overwhelming, huh? The rest of the results are kind of interesting and kind of predictable, but definitely not what the author is trying to pass it off as.
[the survey]:http://www.appcelerator.com/mobile-developer-report-Septembe...
[submitted previously]:http://news.ycombinator.com/item?id=1798878
[+] [-] jnovek|15 years ago|reply
The fact is, people are buying lots of Android handsets. If you've used the Android Market, you'll know that there are lots of apps. The apps in Market may not be as nice or as many as those in the App Store, but it's enough to sell lots and lots of phones.
If you're writing mobile software right now, you should be targeting both iOS and Android (and probably BlackBerry) if you want to get your application in front of as many eyes as you feasibly can.
[+] [-] tvon|15 years ago|reply
Nothing else you say really backs this up, your point seems to be more along the lines of "you can't afford to ignore Android".
[+] [-] glhaynes|15 years ago|reply
That seems tautological. :)
[+] [-] wccrawford|15 years ago|reply
Oh wait, that's exactly the opposite of what happened.
Choice is not bad. Differing hardware doesn't matter.
[+] [-] apl|15 years ago|reply
[+] [-] konad|15 years ago|reply
[+] [-] randallsquared|15 years ago|reply
The competitive market between desktop Linux distros is small and weak compared to the desktop OS market as a whole. Quality control seems non-existent from a naive user's perspective, as things often just don't work like they claim to, or work for the moment and regress when there's a software update they were prompted to install. This isn't an insoluble problem, but it's hard to see how we can get there from here. Microsoft solves this problem (in users' minds, at least) by throwing enormous resources at QA and bugfixing -- more resources that all desktop Linux vendors together even have. Apple solved this by limiting hardware to a comparatively few models, but if a desktop Linux vendor did this and had enough sales to justify it, they would have already either defragmented the market or grown sales enough to escape the trap.
Basically, the lack of quality control in desktop Linux distros seems mostly attributable to the fragmentation, as distros try to differentiate themselves via UI design and package managers rather than helping solve the upstream problems that seem to be holding adoption back.
[+] [-] bad_user|15 years ago|reply
> the lack of quality control in desktop Linux distros seems mostly attributable to the fragmentation
I'm counting ~ 185 words in your reply, and you still haven't defined the "fragmentation" you're talking about, just some random rumble about lack of QA.
The only thing Linux does differently (compared to alternatives) is a lack of binary backwards compatibility, but this is by choice since most software for Linux comes with source-code and can be recompiled. The other major gripe is that you've got multiple APIs you can choose to target (be it graphics, sound, UI) ... but every major distribution has compiled packages for everything that you can pull as dependencies.
Case in point, XMMS, an ancient Winamp clone written with GTK+ ver.1 can still be made to work on every Linux distribution available.
I cannot say the same thing about OS X, which breaks backwards compatibility more often than Linux (like once every 2 or 3 versions).
[+] [-] ia|15 years ago|reply
[+] [-] jnovek|15 years ago|reply
[+] [-] demallien|15 years ago|reply
<"Fragmentation," as I suggest above, is simply a derogatory term for "choice," something not only valued but expected in most product categories. >
Errr, no Katherine. Fragmentation is not a synonym for choice - in fact it's very nearly an antonym. Choice means that I can substitute one product for another - I have a choice!.
Fragmentation, at least in the sense that Jobs and Strohmeyer both clearly meant, is about interoperability. That is, if I buy a Product 2 to work with Product 1 that I already own, will Product 2 continue to work if I replace Product 1 for a new Product 3. The likelihood of this question having a negative response is a measure of the fragmentation of the market. Obviously, if changing from Product 1 to Product 3 means that I lose the ability to use Product 2, that is a cost barrier that is going to make me less likely to change, ie have less choice.
[+] [-] dejb|15 years ago|reply
Err, not exactly. The word 'choice' doesn't inherently imply that each option must never contain any constraints (even though it is generally desirable to minimise them). In fact if all the options are identical in result it's not really a choice. So why do we have all these different product options in so many categories? Why doesn't someone just work out what 'the best' one is, so we can all save the hassle of having those other options? One reason is that people's requirements actually are different. The benefit of choice is that individuals get to decide on which constraints and characteristics suit them best. The longer term benefit is in the competition between different approaches and organisations it fosters.
Interoperability is a property referring to the ability of diverse systems and organizations to work together (inter-operate) (from wikipedia). To me this sounds a bit like the 'inter' part implies separate entities or 'fragments'. I'm not even sure if the word really applies to a monolithic platform like iOS.
[+] [-] billybob|15 years ago|reply
By contrast, if there are 30 branches of an OS, although it does allow different ideas to compete, it also divides up the efforts of people who want to contribute, and even complicates the decision to contribute at all. And it's not always trivial to take good ideas from one project and port them to another.
Is fragmentation overall good or bad? Hard to say. But it does present challenges that go beyond just competition.
In short, sometimes the most helpful answer to "I'm not happy with the direction of this project" is not "fork it," but "talk and compromise or deal with it."
[+] [-] zdw|15 years ago|reply
Android phones, on the whole, lack polish, and often have unexpected behavior.
For example, just yesterday I had a non-technical customer who got a Droid X, with 2.2. Had battery life issues with the phone, and frankly didn't want/need to learn about task management (understandable - do you make the company CEO look at your server's process tables for zombies/runaways?). Plus, the phone had linked a bunch of unrelated contacts between his Exchange and Google accounts, so his contact came up linked to his wife's hairdresser, for whatever reason. That's about par for the course with Android phones.
My take on Android is "great if you're technologically competent and able to deal with issues that come up, not so great otherwise". None of these people are going to run custom ROMs, or take the time/know how to get the crapware off their phones. They're going to be left behind on old versions of the OS as soon as the vendor drops support.
None of these (apart from the unusual contact linkage) are technical objections about Android per say - I have a good friend with a Droid X and he's customized the heck out of it - it looks/works great and has great battery life. He also knows what he's doing. Most people aren't him.
I don't see a good solution to this that would survive carrier intervention...
[+] [-] krschultz|15 years ago|reply
Now I'd argue Windows Mobile is crap, but this kind of stuff is par for the course. And it really has nothing to do with fragmentation which is what this article (and thus this discussion) is about.
[+] [-] apl|15 years ago|reply
But it's crucial to have sensible choice. Consumers get to choose between iOS, webOS, RIM OS and Android. Well, theoretically at least. Instead they get to choose between iOS, webOS, RIM OS and several slightly different, often incompatible and almost always very much un-free Androids. That's the fragmentation problem - Jobs doesn't advocate NO CHOICE, he advocates GOOD CHOICE for the consumer.
I own an Android phone. The stuff Motorola has put on it, without any legal way of removing it, is crap and has nothing to do with vanilla Android. Friends own HTC phones. They have a different half-baked Android-y OS. This fragmentation is bad for the consumer. Choice - between truly different strands of Android - is good for the consumer. Don't conflate these issues.
Also, never mention Linux on the Desktop in any discussion. It's like waving a white flag. Personally, I run Ubuntu and Debian on all my systems. Still: not a compelling argument for anything. Especially since fragmentation IS a massive problem for "consumer Linux".
[+] [-] natrius|15 years ago|reply
You haven't explained why that's a bad thing. You've just stated it as if it's self-evident.
[+] [-] billybob|15 years ago|reply
I think part of the problem is branding. When someone says they have an Android phone, how do you know what that means? Whereas "Fedora Linux" or "Ubuntu 10.4" are quite clear for those who care to differentiate.
If manufacturers and carriers and everyone else specified things like "HTC-modded Eclair Android" or "Stock Donut Android" or whatever, you'd at least be able to more easily choose between two phones. And with clearer choices, consumers could express their preferences in dollars more clearly.
[+] [-] haseman|15 years ago|reply
[+] [-] StavrosK|15 years ago|reply
Those sorts of marketplaces have mostly an exploratory role today anyway, the user goes there to find good apps, not specifically to download an app the user knows is good. If the store itself weeded out all the crapware, it could make a killing very very quickly.
[+] [-] lnanek|15 years ago|reply
Google doesn't allow app stores to be offered via the Google Android Market, so there isn't even a runner up option of having users download it through the channel many of them do have. Non-AT&T Android phones do allow installing from a URL. So conceivably users could get the app store from a URL, but it is even tougher to get users to do that than it is to get them to download from Android Market. They also have to enable the unknown sources option in their settings, which some of them won't do.
Without a large user base, developers won't post their apps to your store. I'm a developer and I've posted a few of my apps to third party stores. I get hardly any downloads compared to Android Market. So it just doesn't make sense for me, as a developer, to go posting my app to all these dead water third party app stores. There are a lot of them too. Hardly a week goes by where I don't get some spam email from a third party app store that scraped the developer emails off the Market listings. So even if I did post to a third party app store, it would be making a choice amongst a large number of them.
[+] [-] unknown|15 years ago|reply
[deleted]
[+] [-] petervandijck|15 years ago|reply
[+] [-] irons|15 years ago|reply
I'm critical of Android's fragmentation problem, and I talk to other people who are too, but I've never heard anyone make the case that Linux is in the same boat. Kernel aside, the two camps of developers tend to have different markets, different distribution models, different funding sources, different UI expectations, different degrees of acceptable UI complexity, and different development timeframes. And when I say different, in most cases I mean "non-overlapping".
s/he/she/, though.
[+] [-] minalecs|15 years ago|reply