

Why Fragmentation isn't a problem for Android or Linux - minalecs
http://www.pcworld.com/businesscenter/article/208193/why_fragmentation_isnt_a_problem_for_android_or_linux.html

======
jlgosse
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.

~~~
Retric
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.

~~~
nuclear_eclipse
Or you can just use the resolution-independent features of Android, including
their 9-patch image/button system for generating a UI that scales with the
device's resolution.

The Android SDK includes a _lot_ of simple ways to mitigate differences
between various devices:
[http://developer.android.com/guide/practices/screens_support...](http://developer.android.com/guide/practices/screens_support.html)

~~~
Retric
There is no way to show an arbitrary 20x20 image in a 19x19 or 21x21 pixel box
without it making some of them look like crap. So, yea you can make a generic
app that works ok in on most Android devices but you are sacrificing both
looks and functionality to do so.

PS: The minimum screen size is (240x320) but _if an image has 1 pixel height
or width, it may not be shown on the screen due to rounding issue._ So they
actually force you to waste a fair amount of space on a very limited device.

------
GHFigs
_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.

[the survey]:[http://www.appcelerator.com/mobile-developer-report-
Septembe...](http://www.appcelerator.com/mobile-developer-report-
September-2010/)

[submitted previously]:<http://news.ycombinator.com/item?id=1798878>

------
jnovek
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.

~~~
glhaynes
_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._

That seems tautological. :)

~~~
jnovek
That's not true. It is beyond the resources of most mobile developers to go
after the "long tail" of mobile platforms -- that's why I said "feasibly".

------
wccrawford
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.

~~~
apl
Differing hardware isn't even the core issue here. It's differing software.
Windows was always consistent across Dell, HP et cetera. Android is not.

~~~
CountHackulus
> Windows was always consistent across Dell, HP et cetera.

This is so very far from the truth. Different OEMs ship with different
patches, and some have custom drivers written, or "management" software that
replaces key windows applications. If you've ever tried to write a game for
Windows you'll know that once you get to testing, you'll find a ton of just
plain strange setups that make no sense.

You are however quite correct in saying that differing software is the key
issue here.

~~~
silvestrov
Windows is different at the _OS install_ level, but at the application level
it doesn't matter if your Wintel is from Dell or HP or Gateway or...

Photoshop doesn't come in a version for "HP Windows" and one for "Dell
Windows", and ...

It is the application level that matters for consumers buying apps. Very few
users reinstall the OS on their mobile phone.

~~~
Keyframe
Well, actually, for a while there were some applications available in Windows
x86 and Windows Alpha (DEC) versions. Now we have x86 and x64 versions, which
is not all that different when you think about it.

------
randallsquared
"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.

~~~
bad_user
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).

~~~
randallsquared
_you still haven't defined the "fragmentation"_

You're unfamiliar with Linux distros? There more than twenty "desktop Linux"
distros mentioned here:
<http://www.desktoplinux.com/articles/AT7386380154.html> , and that's merely
the "especially interesting" ones. In contrast, there are probably less than
20% of OS X users on versions of OS X older than 10.4, and binary
compatibility isn't a major issue for anyone except Windows.

 _OS X, which breaks backwards compatibility more often than Linux (like once
every 2 or 3 versions)._

That's true, but while there are tools to mitigate that (Rosetta, Classic),
it's completely orthogonal to what I'm talking about, as is your server-side
software.

Your point about software that "can be made to work" is exactly spot on:
virtually anything is _possible_ , in a way that it's not always possible on
Mac or Windows, but almost nothing is _easy_.

I have never seen an install of desktop Linux where the install went smoothly
and it found all the hardware and correctly set it up, and all the settings
did what they say they do, and all the software available in the _built-in_
software installation tool actually worked. As soon as a person unfamiliar
with what to avoid starts playing around with a desktop Linux install, things
start to go wrong, and if they're lucky it's a dozen little things that just
don't quite work right, and if they're unlucky they stumble into things that
really make the system unusable.

I've seen this happen over and over with friends I'd encouraged to try Linux
when they were griping about Windows, and I know of only one group (a family)
who successfully made the switch. How did they do it? Well, they've learned
not to try to adjust things too much, and they mostly keep their hands inside
the cart and sit very still, and when things go wrong they quietly wait for
the next Ubuntu release in the hopes that the problem will be fixed without
too much other stuff breaking. Oh, and they purchased Ubuntu-specific
hardware, but things _still_ stop working randomly on update from time to
time.

This is what I mean by having a QA problem. Desktop Linux needs a thousand QA
and dev people focused on tracking down and fixing all these issues, and it
can't get them, and I don't see any way that's going to change.

Edit: Oh, and you'd have to fork about a thousand different pieces of software
to achieve consistency and interoperability that didn't immediately fall apart
on the next minor release of those applications. Putting together a coherent
Linux desktop seems like one of those things where we should be surpised that
anyone succeeds at all, rather than upset that they didn't do well at it.
"It's not how well the bear dances", and all that.

~~~
bad_user
Well, yeah, you've got some good points there.

All I'm saying is that fragmentation never bothered me so much, and even on
Linux where you've got a thousand options available, there are a couple of
paths that you can go on which will make everything less painful.

When it comes to Android development, yes you need to test on multiple
devices, but what's mostly broken is the design that has to have adjustments
for multiple resolutions ... but then again, I haven't done stuff too
complicated thus far.

I feel this is the same gripe people have with the web, where I do have
experience and where fragmentation never was an issue for me. All I had to do
was to look around for abstractions, and for IE hacks try not to reinvent the
wheel on every single project (and just ignore IE6 since about a year ago, but
with a nice warning for users to know what's going on).

------
ia
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.

~~~
jnovek
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?

~~~
protomyth
For US sales, I think there are two reasons: Verizon and taking over for basic
/ feature phones. Verizon has put some serious money behind the Droid brand
and since we don't have a Verizon iPhone it makes a lot of sense that they are
selling quite a bit.

The second reason is a little harder to justify. My basic premise is that many
of these phones are going for the same price as feature phones and are being
pushed hard. The data plan makes them more money so it is a net win for the
carrier. My big reason on this one is the low number of apps bought per phone
compared to the iPhone. It seems like they should have higher sales unless
people were actually treating it more like a non-smart phone. This isn't
really that bad for the carrier or Google, but it really needs to turn around
to help more developers. I get the feeling the Amazon store might correct the
attitude because of Amazon's reputation and ability to get people to buy
online.

~~~
jnovek
"My big reason on this one is the low number of apps bought per phone compared
to the iPhone."

I actually use a Nexus One while my wife uses an iPhone. I confess that I like
the Nexus One for the reason that the original poster mentions -- I am a geek
and a customizer.

One thing I've noticed, having spent time with both devices, is that there
seems to be much more competition from free or ad supported apps on Android
than on the iPhone. I probably have 20 or so apps installed on my phone, but
every single one of them is free. On the other hand, my wife has 5 or 6 paid
apps installed on her phone. Furthermore, the iPhone seems to be well
optimized as an app-delivery platform, whereas Android seems to be more
focused on an integrated suite of tools (like Blackberry) -- it ships with a
lot of stuff that I would have to grab as an app in iOS.

------
demallien
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.

~~~
dejb
> 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.

~~~
ZeroGravitas
Recently Microsoft have suggested that European governments can fulfil their
"interoperability" requirements by the simple expedient of everyone buying
Microsoft products.

Seems like Apple's taking a similar tack. So much easier than using open
(there's that word again) standards.

~~~
GHFigs
Which open standards are you referring to?

------
billybob
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."

------
zdw
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...

~~~
krschultz
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.

------
apl
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".

~~~
natrius
> _Friends own HTC phones. They have a different half-baked Android-y OS. This
> fragmentation is bad for the consumer._

You haven't explained why that's a bad thing. You've just stated it as if it's
self-evident.

------
haseman
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.

------
StavrosK
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.

~~~
lnanek
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.

~~~
StavrosK
Ah, I see. I don't have an Android phone, so I wasn't aware of the security
settings and possibility to install things from a URL, thank you for the
information.

------
petervandijck
I was nodding along until he compared Android with Linux desktop. Mmmm.

~~~
irons
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".

s/he/she/, though.

------
minalecs
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.

