Linux has not been a mainstream desktop operating system, being mostly relegated to programmers and system administrators.
By Programmers, for ProgrammersOne of the reasons that Linux has failed to appeal to mainstream computer users is that its user base is not made up of mainstream computer users, but of developers. This dates back to the heritage of Unix, which was also developed "by programmers, for programmers." It was developed by some very good programmers, Dennis Ritchie and Ken Thompson.
When they were developing Unix at Bell Labs, there wasn’t much attention given to "user-friendliness," given that they were developing a system designed for computer science research.
This developer orientation has persisted to the present day. Even with distros like Ubuntu that promised to be easier for nontechnical users to install and use, they still require a bit of know-how to navigate.
Miguel de Icaza, one of the principal founders of the GNOME project, agrees. "The problem with Linux on the desktop is rooted in the developer culture that was created around it," he wrote.
Besides being difficult to install and use, another major problem in his view is the tendency for developers to throw out interfaces and APIs that work perfectly well in favor of something more "elegant."
"The attitude of our community was one of engineering excellence: we do not want deprecated code in our source trees, we do not want to keep broken designs around, we want pure and beautiful designs and we want to eliminate all traces of bad or poorly implemented ideas from our source code trees," he added.
Windows, on the other hand, stresses backward compatibility to the point where some people think they have the opposite problem.
Lack of a Consistent User InterfaceWhile Windows and Mac OS X give their interfaces a consistent look and feel and issue human interface guidelines, Linux is much more anarchic.
One reason is that the GUI, running under the X Window System, is just another program instead of being intimately tied to the system.
In addition to different window managers and desktops, there are a number of different toolkits. Technical users might happily use the Emacs editor, the Midnight Commander file manager and zsh, but a novice user might find the differing interface styles jarring. This has sent them into the arms of Windows and Mac OS X.
ElitismRipping everything out and starting from scratch is one symptom of elitism that can permeate the Linux community.
Nearly everyone who’s been new to Linux and has asked a question on a forum or IRC channel has been told to "RTFM" (Read The Fine Manual) at least once.
Linux programmers are justifiably proud of being able to completely build an operating system that’s open source, working with other programmers all over the world, completely from scratch. Sometimes they fail to realize that not everyone is a wizard programmer.
Hardware SupportAnother irritating sticking point is hardware support. While writing device drivers can be tedious, devices that have incomplete functionality - or worse, don’t work at all in Linux - seriously hamper adoption.
Of course, this isn’t completely the fault of developers. There are lots of devices out there, and it’s hard to write drivers for them. Some, like graphics cards, are considered trade secrets and manufacturers are mum about their designs. Wireless networking cards also suffer from the same problem. Developers have to reverse engineer them in order to implement at least some functionality or rely on proprietary drivers.
Windows, Mac are Good Enough For Most PeopleThe main reason why more people haven’t moved to Linux en masse, even in the face of disasters like Windows 8 and Vista, is that Windows is simply good enough for most people. With Windows XP, ordinary desktop users finally gained full pre-emptive multitasking and with it, much greater stability. The "Blue Screen of Death" has mostly disappeared, except in the case of some serious hardware issue.
Even the end of support for Windows XP didn’t prompt a mass migration to Linux. It seems the idea that Windows users would suddenly adopt Linux has been nothing more than wishful thinking. Windows XP users stuck with the system for so long because they weren’t willing to change in the first place. Why would they adapt now?
Windows 7 and XP users also simply avoided Windows 8. Now that Microsoft is making Windows 10 a free upgrade for Windows 8 and Windows 7 users, it makes more sense for them to upgrade to Windows 10 instead of Ubuntu.
Mac OS X seems to succeed where Linux has failed, offering a Unix-like desktop that’s easy to use. (Read more about the power of Unix in What IT Peope Can Learn from the Unix Philosophy.)
Linux is Winning on MobileWhile Linux isn’t a force on the desktop, the world is less dependent on the traditional desktop these days. More people are using Web apps like Google Docs and shifting their computing to mobile devices. Android, based on Linux, is winning with over 83 percent of the mobile market share. Chromebooks, lightweight laptop computers designed for use with the Web, are also muscling in on Windows from below.
The Web apps that people use every day, including those from Google, mostly run on Linux as well. It seems that Linux is winning on everything but the desktop.