Recently there was an article titled ‘What killed the Linux desktop?’ by Miguel de lcaza. Miguel is one of the popular free software programmers, played key role in creating popular desktop environments like GNOME. In his article Miguel clearly states some of the key reasons why Linux has not become a successful desktop operating system.
Based on his article, I would like to add some of my viewpoints as follows:
Loose coupling of Kernel and GNU: One of the key contributors for poor user experience with Linux based desktop is loose coupling between Kernel and GNU software. Kernel, which is an engineering marvel by itself (thanks to strict governance model), never had any commercial intent in mind at least when it started. When various GNU software got bundled to create a desktop Linux distribution loose coupling started happening. If a novice user faces any issues, he will not be able to figure it out why and what exactly going wrong. Version incompatibilities, dependent library/binary issues, Unclear/ambiguous documentation, not so strong community support for a normal user has become bottleneck, which hampered faster adaptation. While engineers and technologists enjoy this distributed, democratic model of development and got ‘kick’ out of experimenting anything and everything, it is far away from providing good user experience for a normal user.
Reverse approach by OS-X: The article also talks about a total opposite approach taken by OS-X, which initially focused on user experience by targeting normal users. Today everybody understands how advanced OS-X based products are when it comes to user experience. Even though it was initially perceived as ‘closed’ system by developers and hackers, slowly the move happened when they started providing more programmer centric features as a part of OS-X. Even though I have not experimented any OS-X terminals, I am sure as a programmer I will be able to achieve almost the same thing what I would be able to do with Linux.
Fundamental philosophy: The bottom line of Linux desktop challenge leads to fundamental philosophy on which Linux or open source software is built. Since the major objective was to provide free (freedom) for users, it is still lead by programmer centric thinking than user experience centric. Because when somebody starts thinking about user experience, it invariably leads to commercial intent, which may not go well with free software philosophy.
Unless tightly integrated system is built (ex: Android) around Linux, it is still far from being popular desktop operating system.