I'm a Linux desktop user. GNOME's Linux desktop explained why in What Killed The Linux Desktop. Linux's creator, Linus Torvalds, and other top Linux developers, had other takes.. But the Linux desktop itself has never been that popular and Miguel de Icaza, one of the creators of the
De Icaza had argued that Linux desktop's 'failure' was “rooted in the developer culture that was created around it.” Specifically, “Linus, despite being a low-level kernel guy, set the tone for our community years ago when he dismissed binary compatibility for device drivers. The kernel people might have some valid reasons for it, and might have forced the industry to play by their rules, but the Desktop people did not have the power that the kernel people did. But we did keep the attitude.”
By that, de Icaza meant, “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. … And we did.”
He continued, “We deprecated APIs [application programming interfaces], because there was a better way. We removed functionality because 'that approach is broken,' for degrees of broken from 'it is a security hole' all the way to 'it does not conform to the new style we are using.'”
And here is where Torvalds disagrees. Torvalds wrote, “One of the core kernel rules has always been that we never ever break any external interfaces. That rule has been there since day one, although it's gotten much more explicit only in the last few years. The fact that we break internal interfaces that are not visible to userland is totally irrelevant, and a total red herring.”
Ingo Molnar, a leading Red Hat, Linux developer added, “The Linux kernel project was always very strict about keeping its external ABIs, intended ABIs and even accidental ABIs. This is how it's possible that Alan Cox's 20 years old Rouge game binary built in 1992 is still compatible with and working</b>on today's latest Linux kernel unmodified - and will still work 50 years in the future.
Theodore “Ted” T'so, another top Linux kernel developer, added “instead of the desktop developers from only paying attention to the kernel's attitude towards internal interfaces, and IGNORING the kernel developer's attitude towards external interfaces used by applications --- and then taking the wrong lesson by focusing on the wrong thing. May I suggest that this is totally and wholly the GNOME developer's fault? The fact is that we've always had the attitude of You Will Never Break Applications has been a hard and fast rule for decades, and we have reverted kernel changes when breakage has been discovered.”
But, there was more to it than development style, de Icaza stated, “The second dimension to the problem is that no two Linux distributions agreed on which core components the system should use. Either they did not agree, the schedule of the transitions were out of sync or there were competing implementations for the same functionality.”
De Icaza continued, “The efforts to standardize on a kernel and a set of core libraries were undermined by the Distro of the Day that held the position of power. If you are the top dog, you did not want to make any concessions that would help other distributions catch up with you. Being incompatible became a way of gaining market share. A strategy that continues to be employed by the 800 pound gorillas in the Linux world.”
To this, Alan Cox, a leading Linux developer replied, “That made me laugh. There was KDE and Miguel then came along and created the very confusion he's ranting about. … He's dead right about the way the Gnome people keep breaking their compatibility every time not just with the apps but with the UI, with the config (which is still worse now than in Gnome 1.x !) and so on. However it's not an Open Source disease its certain projects like Gnome disease “
Torvalds agreed, “Some gnome people seem to be in total denial about what their problem really is. They'll wildly blame everybody except themselves. This article seems to be a perfect example of that."
Be that as it may, de Icaza, argued that both factors “killed the ecosystem for third party developers trying to target Linux on the desktop. You would try once, do your best effort to support the "top" distro or if you were feeling generous 'the top three' distros. Only to find out that your software no longer worked six months later.” On the Google+ thread, de Icaza added, “Supporting Linux desktop for proprietary software developers is just too expensive and the market is both small and deeply fragmented.”
In his article, he continued, “we missed the big picture. We alienated every third party developer in the process. The ecosystem that has sprung to life with Apple's OS X AppStore is just impossible to achieve with Linux today.”
Today, de Icaza is a Mac OS X fan. In an addition to his article, de Icaza wrote, that “the various Linux on the desktops are the best they have ever been. Ubuntu and Unity, Fedora and GnomeShell, RHEL and Gnome 2, Debian and Xfce plus the KDE distros. And yet, we still have four major desktop APIs, and about half a dozen popular and slightly incompatible versions of Linux on the desktop: each with its own curated OS subsystems, with different packaging systems, with different dependencies and slightly different versions of the core libraries.”
Is there an answer? A way for Linux to become popular on the desktop? De Icaza opined, “The only way to fix Linux is to take one distro, one set of components as a baseline, abandon everything else and everyone should just contribute to this single Linux. Whether this is Canonical's Ubuntu , or Red Hat's Fedora or Debian's system or a new joint effort is something that intelligent people will disagree until the end of the days.”