Why Linux failed to take over desktop computing

The Linux community is abuzz with lamentations about why it has failed to penetrate the desktop market.

A historical shift has occurred. The prices of computers have fallen, which means that the price of the operating system is no longer an impediment. As a result, many Linux devs have moved over to using OS X machines and most of the consumer world has moved to Windows 7, which fixes the problems of prior versions of Windows and may be the most popular version ever.

As a result, the battle is over. Linux remains with the geeks, and the desktop goes to Microsoft and Apple.

This delineates the eternal divide between geek and regular user: the geek wants to use the computer, the regular user wants to use the computer to do something. They want the operating system to “just work.”

Miguel de Icaza illustrates this with a simple example:

The hard disk that hosted my /home directory on my Linux machine failed so I had to replace it with a new one. Since this machine lives under my desk, I had to unplug all the cables, get it out, swap the hard drives and plug everything back again.

Pretty standard stuff. Plug AC, plug keyboard, plug mouse but when I got to the speakers cable, I just skipped it.

Why bother setting up the audio?

It will likely break again and will force me to go on a hunting expedition to find out more than I ever wanted to know about the new audio system and the drivers technology we are using. – “What Killed the Linux Desktop,” by Miguel de Icaza

Imagine that you’ve got a project due on Monday, and you’re installing Linux on a Friday, and something goes wrong with the audio drivers. Do you have 48 hours to screw around with a defensive community, bad documentation and a constantly-changing target?

The geek will rise to the challenge, get excited by the new audio subsystem that has better time-sequenced performance than the Windows option, and spend the next 48 hours researching and fiddling and having a good time. The project won’t get done.

On the other hand, whipping out the Windows 7 DVD, entering a few registration numbers and hitting GO takes about 30 minutes, and the audio works out of the box on any of several thousand configurations. Then the project can get done by Monday, the job saved, the family happy.

The Linux community is oblivious to anyone but the geeks. As de Icaza puts it later in his post:

When faced with “this does not work”, the community response was usually “you are doing it wrong”.

Linux failed on the desktop because it offered the antithesis of “it just works,” despite the efforts of Ubuntu and live-boot CDs.

Following up on that post, Christian Schaller weighed in with a list of reasons that Linux hadn’t gotten anywhere. Here are the most relevant:

  • Companies tend to depend on a myriad of applications to run their business, and just a couple of them not running under Linux would be enough to derail a transition to Linux desktops
  • We were competing not only with other operating systems, but with a Office productivity application monopoly
  • We are trying to compete by supporting an unlimited range of hardware options
  • We divided our efforts into multiple competing APIs (GNOME vs KDE)
  • There was never a clear method of distributing software on Linux outside the distro specific package system.
  • Many of our underlaying systems were a bit immature
  • We never reached a critical mass where porting to desktop Linux tended to make sense
  • An impression was created that Linux users would not pay for any software

“The challenges of desktop Linux,” by Christian Schaller

He tells you the how, but not the why.

Here’s the why: Linux was a volunteer effort isolated in geek culture.

Linux lacked direction because it was based on what developers wanted to do, not what users needed.

When a boring or hard task came up, like documentation or making the system internally consistent, or even fixing uninspiring parts of the OS, the developers evaporated.

When the user asked for help, even when the problem was an error in the software itself, the Linux development community turned around and blamed the user.

Most online communities are this way. The developers see themselves as Christ-like figures who are slaying the dragon of inoperable software, and everyone else is “little people” whose concerns don’t count. Except that they then expect the little people to adopt their software and praise them for making it.

Similar concerns were brought up with the FreeBSD community, another volunteer group, a year or so ago:

> I make decisions about hardware and software for those who work with me.
>
> Talking with my second in command this morning, we reached a quandary.
> Ron is completely pro-Linux and pro-Windows, and against FreeBSD.
>
> What is odd about this is that he’s the biggest UNIX fanatic I know,
> not only all types of UNIX (dating back quite some time) but also all
> Unix-like OSen.
>
> I told him I was considering FreeBSD because of greater stability and security.
>
> He asked me a question that stopped me dead:
>
> “What is a quality operating system?”
>
> In his view, and now mine, a quality operating system is reliable,
> streamlined and clearly organized.
>
> Over the past few years, FreeBSD has drifted off-course in this
> department, in his view.
>
> Let me share the points he made that I consider valid (I have deleted
> two as trivial, and added one of my own):
>
> (1) Lack of direction.
>
> FreeBSD is still not sure whether it is a desktop OS, or a server OS.
> It is easy for the developers to say “well, it’s whatever you want,”
> but this makes the configuration process more involved. This works
> against people who have to use these operating systems to get anything
> done.
>
> In his view, a crucial metric here is the ability to estimate time
> required for any task. It may be a wide window, but it should not be
> as wide as “anywhere from 30 minutes to 96 hours.” In his experience,
> FreeBSD varies widely on this front because in the name of keeping
> options open, standardization of interface and process has been
> deprecated.
>
> (2) Geek culture.
>
> Geek culture is the oldest clique on the internet. Their goal is to
> make friends with no one who is not like them. As a result, they
> specialize in the arcane, disorganized and ambiguous. This forces
> people to go through the same hoops they went through. This makes them
> happy, and drives away people who need to use operating systems to
> achieve real-world results. They reduce a community to hobbyists only.
>
> (3) Horrible documentation.
>
> This is my specialty and has been since the early 1980s. The FreeBSD
> documentation is wordy, disorganized, inconsistent and highly
> selective in what it mentions. It is not the product of professionals
> but it also not the product of volunteers with a focus on
> communication. It seems pro-forma, as in, “it’s in the documentation,
> so don’t bother me.” The web site compounds this error by pointing us
> in multiple directions instead of to a singular resource. It is bad
> enough that man pages are separate from your main documentation tree,
> but now you have doubled or trebled the workload required of you
> without any benefit to the end user.
>
> (4) Elitism.
>
> To a developer, looking at some inconsistent or buggy interface and
> thinking, “If they can’t do this, they don’t belong using FreeBSD
> anyway” is too easy of a thought. Yet it looks to me like this happens
> quite a bit, and “this is for the elite” has become the default
> orientation. This is problematic in that there are people out there
> who are every bit as smart as you, or smarter, but are not specialized
> in computers. They want to use computers to achieve results; you may
> want to play around with your computer as an activity, but that is not
> so for everyone.
>
> (5) Hostile community.
>
> For the last several weeks, I have been observing the FreeBSD
> community. Two things stand out: many legitimate questions go ignored,
> and for others, response is hostile resulting in either incorrect
> answers, haughty snubs, and in many cases, a refusal to admit when the
> problem is FreeBSD and not the user. In particular, the community is
> oblivious to interfaces and chunks of code that have illogical or
> inconsistent interfaces, are buggy, or whose function does not
> correspond to what is documented (even in the manpages).
>
> (6) Selective fixes.
>
> I am guilty of this too, sometimes, but when you hope to build an
> operating system, it is a poor idea. Programmers work on what they
> want to work on. This leaves much of the unexciting stuff in a literal
> non-working state, and the entire community oblivious to it or
> uncaring. As Ron detailed, huge parts of FreeBSD are like buried land
> mines just waiting to detonate. They are details that can invoke that
> 30 minute to 96 hour time period instantly, usually right before you
> need to get something done.
>
> (7) Disorganized website.
>
> The part of the FreeBSD project that should set the tone for the
> community, the FreeBSD website, reflects every one of these
> criticisms. It is inconsistent and often disorganized; there is no
> clear path; resources are duplicated and squirreled away instead of
> organized and made into a process for others to follow. It is arcane,
> nuanced and cryptic for the purpose of keeping the community elitist,
> hobbyist and hostile to outsiders.
>
> In addition, huge portions of it break on a regular basis and seem to
> go unnoticed. The attitude of “that’s for beginners, so we don’t need
> it” persists even there. With the graphic design of the website I have
> no problem, but the arrangement of resources on it reflects a lack of
> presence of mind, or paying attention to the user experience.
>
> All of this adds up to a quality operating system in theory that does
> not translate into quality in reality.
>
> You alienate users and place the burden upon them to sort through your
> mess, then sneer at them.
>
> You alienate business, professional and artistic users with your
> insistence on hobbyism. These people have full lives; 48 hour sessions
> of trying to configure audio drivers, network cards or drive arrays
> are not in their interest.
>
> Even when you get big parts of the operating system correct, it’s the
> thousand little details that have been forgotten, ignored or snootily
> written off that add up to many hours of frustration for the end user.
> This is not necessary frustration, and they get nothing out of it. It
> seems to exist because of the emotional and social attitudes of the
> FreeBSD team.
>
> Sadly, Ron is right. FreeBSD is not right for us, or any others who
> care about using an operating system as a means to an end. FreeBSD is
> a hobby and you have to use it because you like using it for the
> purpose of using it, and anything else will be incidental.
>
> That is the condition of FreeBSD now. If these criticisms were taken
> seriously, I believe the situation could change, and I hope it does.
“A quality operating system,” by Evan Busch

You might ask, how defensive are online communities?

Here’s the first five responses from the community:

On Sat, Aug 20, 2011 at 2:19 AM, Odhiambo Washington wrote:
>
> That whole paragraph is some irrelevant assertion.

(2)

On Sat, Aug 20, 2011 at 2:45 AM, Open Slate Project wrote:
>
> Perhaps you would be happier at an Apple Store.

(3)

On Sat, Aug 20, 2011 at 7:30 AM, Hasse Hansson wrote:
> Happy Trolling :-)

(4)

On Sat, Aug 20, 2011 at 1:09 PM, Michael Sierchio wrote:
>
> Are you lazy, or stupid? man freebsd-update

(5)

On Sat, Aug 20, 2011 at 1:31 PM, mikel king wrote:
>
> I do not think it is worth wasting important list bandwidth on your flame fodder.

It’s not surprising that Windows and OS X won out over this kind of attitude. Try explaining to your boss, customers or family how you didn’t get the job done because you spent all weekend fixing the audio drivers or the update software only to find out that it was a problem in the free software.

As far as the future of Linux, as several articles pointed out, Linux has found its niche and is unlikely to break from it:

Even if you don’t have a single open source application installed on your laptop, if you use the web you’re probably being served by several open source technologies, including web servers like Apache and Nginx and programming languages and frameworks like PHP and Ruby on Rails all running on an open source operating system. – “How Apple Killed the Linux Desktop and Why That Doesn’t Matter,” by Klint Finley

Linux has, like the geek that it is, filed itself in the server room away from the customers, where it can giggle and snort and not be seen. Here the requirements are fewer and are purely technical, so the geek culture can agree on them, not to mention the many paid contributors from third party vendors who contribute.

BSD faces similar problems with similar causes. They depend on a wave of geeks who don’t mind spending hours fixing trivial problems, because that’s what they enjoy doing.

The future however is going to belong to those who make things just work, so that people can get on to doing what they need to do. The era of the geek is over. The death of Linux on the desktop is also the death of geek culture.

Windows 7 and OS X show us that the future belongs to those who do not fixate on the machine and its operating system itself, but its possible uses. Out of the basement and into the light.

4 Comments

  • manmath sahu says:

    Well Said! But I’m sure Linux won’t make it big in mass adoption, but will revolve around geek circles.

  • manmath sahu says:

    the community, the development model, preference of features to polish, and the freedom of choice are the major roadblocks to linux popularity!

  • lj says:

    Interesting and somewhat valid points. I wouldn’t agree to all of them though.
    I think much of it is overgeneralized and overdramatized.
    The OS of choice has always been a question of taste, and I’m not sure that the goal has ever been to take over as a desktop OS replacing Mac OS X or Windows.

  • yukari says:

    Was thinking about this article the other day after finishing my reading of the Art of Unix Programming.

    I’m still not sure why people tried to bring Linux to the desktop; it’s fine where it is. I’ll use Windows for the apps, I’ll stay in the basement to figure out how the computer works.

Leave a Reply

Your email address will not be published. Required fields are marked *