After a decade of looking for the “year of the Linux desktop”, many Linux columnists have given up. Some say it isn’t coming, while others claim that Linux has simply failed on the desktop.
If we responded to everyone who has ever criticised the Linux desktop, we wouldn’t get any work done. But Miguel de Icaza isn’t just anybody. He’s well respected in the open source community as the founding developer of one of the two main Linux desktop environments, the Gnome desktop. To our utter amazement, even he now thinks the Linux desktop is dead!
In a recent post on his personal blog, Icaza shares his reasons why Linux couldn’t pitch itself as a viable consumer desktop operating system. His comments are a follow-up to a Wired article that claimed that Apple OS X has far outpaced the Linux desktop. In the post, titled “What killed the Linux desktop?” Icaza, from his experience with Gnome, collates the various reasons for the Linux desktop’s dire predicament.
The crux of his argument is that in their bid for technical excellence, the Gnome developers tweaked the software interfaces so often that it became a nightmare for third-party developers to support. But what started off as a moment of introspection turned ugly when Icaza blamed the all-father Linus Torvalds for inadvertently misleading the larger Linux development community:
“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.”
He argues that “the problem with Linux on the desktop is rooted in the developer culture that was created around it.” Icaza then writes about how this attitude affected their development efforts. He explains that in their bid to eliminate poorly implemented features, the Gnome developers mercilessly deprecated APIs for better ones:
“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.'”
This ‘attribution’ obviously didn’t go down well with Torvalds, who dismisses Icaza’s claim that he set the attitude which causes problems on the desktop. In a Google+ thread discussing the post, Torvalds reflects on his own development style for the Linux kernel by pointing out that “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.”
One of his top lieutenants, Theodore Ts’o, also affirms Torvalds’ stance, saying that the desktop developers have only paid attention to the kernel developers’ attitude towards “internal interfaces” and have completely ignored their attitude towards “external interfaces”. He reiterates Torvalds’ position that if a tweak to the kernel causes an application to break it should be considered a bug, and the only fix is to revert the change.
“Things inside the kernel can be changed with impunity, but things which applications depend upon must not be changed. Unfortunately, the desktop developers never understood this lesson,” writes Ts’o.
Torvalds agrees, adding that “some Gnome people seem to be in total denial about what their problem really is. They’ll wildly blame everybody except themselves.”
Moving on, the next item on Icaza’s list is the lack of coordination between the various Linux distros:
“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.”
He illustrates this by again bringing up the kernel. “The efforts to standardise 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.”
Although there is merit in Icaza’s argument, the kernel developers couldn’t help but note the irony here. Alan Cox, one of the most respected Linux developers, replies:
“That made me laugh. There was KDE, and Miguel then came along and created the very confusion he’s ranting about.”
Cox goes further and blames Gnome for breaking compatibility on the desktop, saying Icaza is “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, it’s certain projects, like Gnome, disease.”
Cox and another kernel developer, Ingo Molnar, then point to the kernel’s excellent backward compatibility. Molnar writes that “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 Rogue game binary, built in 1992, is still compatible with and working on today’s latest Linux kernel unmodified – and will still work 50 years in the future.”
An ABI (Application Binary Interface) is the interface between a computer program and the operating system and defines, among other things, how an application should make system calls to the operating system. Although both his claims were challenged and overruled by respected and knowledgeable members of the open source fraternity, Icaza, in his original post, concludes that together they created an ecosystem that didn’t appear to be very welcoming to third-party desktop app developers.
“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.”
Again, he blames the developer-focused approach, which he acknowledges helped pioneer things such as package management. But in the process, they missed “the bigger picture” and alienated third-party developers.
In an update to his post, Icaza clarifies his position and praises the desktop distros, saying 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,” but adds that this still leaves us with “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.”
On the Google+ thread, he adds: “supporting Linux desktop for proprietary software developers is just too expensive and the market is both small and deeply fragmented.”
Icaza’s views were endorsed by Christian Hammond, a VMware developer who works on the Workstation and Player apps for Linux. Responding to Icaza’s post, Hammond, on Twitter, writes that at VMware they spent a considerable amount of time handling the “compatibility crap”.
Icaza’s post, and the subsequent discussions on various networks, prompted a much more detailed post from prolific open source hacker Michael Meeks, who reasons that turning away third-party developers is only one of the reasons for Linux’s poor show on the desktop.
While Meeks mostly agreed with Icaza’s conclusion that “we’re still facing a huge uphill struggle”, to make Linux an attractive desktop offering, he thinks there are more reasons behind it than those highlighted by Icaza:
“My punchline is that the Linux desktop faces a huge and multi-factored ecosystem challenge, there is no single simple issue to fix.”
Pre-installs are key
In fact, Meeks argues that the “Linux desktop stack (with existing frozen/back-compatible API/ABIs) is not profoundly different from other operating systems”. He goes on to add that “arguably it is better for ISVs, since we have access to open the lid on the box and work with each other.”
Although Meeks thinks that this makes the Linux desktop preferable to independent developers, he reasons that we fail to attract developers because the competition, despite its lack of technological superiority, has “large, addressable markets”. But this seems to be changing as third-party developers are warming up to the Linux desktop.
Meeks points to video game development and distribution company Valve Software, which is working with Intel to improve open source drivers to better support its wares. However, Meeks believes that even more important than encouraging app developers is attracting OEMs to ship computers with Linux pre-installed.
Torvalds agrees. In an interaction in June 2012 with students at Aalto University, Finland, he said that a major reason for the lack of Linux on the desktop is that the average desktop user doesn’t want to install an operating system: “You can’t get a desktop unless you have pre-installs, and that hasn’t happened.”
Furthermore, he added that the reason behind Linux’s success on the mobile platform “is not because people are downloading and installing disc images on their cell phone. No, it’s because it comes on the cell phone pre-installed.”
If you look hard enough, you’ll find some vendors, including major ones like Dell, that sell machines with Linux pre-installed. There’s also System76, ZaReason, the Linux Emporium, and Tiny Green PC, which sells its brand of small, fanless computers. Some distros, such as Debian, also maintain a list of OEMs that sell hardware pre-installed with its distro (www.debian.org/distrib/pre-installed). There’s also a list of Linux-friendly hardware vendors at http://www.linuxpreloaded.com.
But since the OEMs don’t need to dig in to their wallets to ship Linux on their hardware, shouldn’t the stores be overflowing with Linux machines? According to Meeks, obtaining the OS is just one part of the OS pre-install process.
“One of the major business problems of hardware enablement is that it takes a constant investment of real cash to pay excellent engineers to make (brand new) hardware work reliably,” writes Meeks. What he means by that is that despite it not costing anything to download and install Linux, there are additional costs to get the OS working on specific hardware configurations.
Again, one would assume that Linux has an upper hand here. After all, Meeks says, it has more drivers working out of the box than any other OS. But our advantage is negated by the Windows ecosystem, which distributes this cost among hardware vendors who write their own drivers, and by the Mac ecosystem, which ships a very limited set of hardware.
Furthermore, Meeks points out that “even if hardware can be perfectly enabled, fully translated, with accurate manuals, support and update plans, integrated with OEM’s imaging infrastructure, etc, and at near-zero cost, this is still too expensive.”
He explains that this is because OEMs who build Windows machines in fact earn revenue from co-marketing, advertising cuts, and bundling antivirus and trial versions of software. These avenues just don’t exist on the Linux desktop. So while Linux might not cost OEMs any money to download and install, Windows, despite its licensing cost, in fact brings in revenue for the OEMs.
Where’s the marketing?
Both Meeks and Torvalds agree that even in cases when a Linux pre-installed desktop is available with a vendor, it’ll miss the cursory glance of a buyer because of virtually non-existent marketing efforts. The average desktop user barely knows what Linux is, let alone the different distros beyond Ubuntu, Mint and Fedora. There has to be a concerted effort on the part of the desktop distros to make people aware of the alternatives at their disposal.
“It is, of course, possible for an excellent product to spread virally by word of mouth, clever volunteer marketing, and more – but it is hard work,” writes Meeks. That said, word of mouth has got us as many users as it could, but to break through the mainstream and seize public consciousness, we need to exploit mainstream marketing avenues.
Meeks believes that “we may well already be more secure, more manageable, more easy to upgrade, and lower cost, but unless consumers know about us – with the best will in the world, they can’t choose us.”
And we aren’t just talking about throwing money at flashy advertising on the high street. Marketing desktop Linux is also about creating awareness. One way of doing so is by changing the IT curriculum in schools, which in many countries is still biased towards specific applications. So, instead of producing discerning desktop users, the system keeps churning out ones who are unaware of the other alternatives.
Linux as a framework
Arguably the biggest reason for the laggard pace of the Linux desktop is that there is no ‘one’ Linux desktop. Beyond Windows and Mac OS X, there’s Ubuntu Linux, Fedora Linux, Linux Mint and hundreds of other options. The equation is complicated further by the choice of desktops and other components that one can run on top of them.
Linux, it seems, has an identity crisis. For a long time, we have relished the diversity and choice available on the Linux desktop, and counted it as a strength of the platform. But it’s important to realise that when it comes to mainstream adoption, the lack of a unified front is actually a hindrance. In fact, this is something Torvalds agrees with: “Well, yes, some things would be easier if there was no choice”.
As he explains in that interview, Torvalds was never interested in using the Linux trademark to create a default Linux environment. Nor was the Linux Standard Base (LSB). But if you look at Android, it uses Linux as a framework, on top of which it assembles a standardised set of components that make up its releases.
The purists may cringe all they want, but Google’s strategy seems to have worked on mobile gadgets, such as smartphones and tablets. Now it seems Canonical is trying to replicate this arrangement on the desktop and other devices with Ubuntu.
The distro has its own desktop (Unity), its own app store (Ubuntu Software Center), its own cloud-based storage and music service (Ubuntu One), and only supports its own Ubuntu-branded kernel. In fact, some of the features for its upcoming Ubuntu 13.04 release will be developed behind closed doors and later released as open source, much like Android releases.
Traditionalists and geeky Linux users have bickered about this, but Canonical’s strategy seems to be working. They are the officially-supported distro by almost every third-party developer porting their wares to Linux, such as the recently-announced move by Valve Software, that is porting Steam to Linux.
Another thing that has worked in Ubuntu’s favour is the familiarity of its Unity desktop, especially to Windows and Mac users. As things stand, the average desktop user sees Linux as a replacement for Windows, while the experienced users crib about its similarities with proprietary OSes.
The Enterprise desktop
While the issues for the consumer desktop are being sorted, Meeks suggests we should focus our energy on the Enterprise desktop. “In my view, the most hopeful strategy for the Linux desktop is to make it ideal for an enterprise, while not crippling it for consumers and very early adopters,” he writes.
Citing his experience with Novell’s commercial Suse Linux Enterprise Desktop (SLED), Meeks writes that the current economics of Linux desktops are more attractive to business users, who prefer systems that are secure, and integrate well with the existing network infrastructure. He says that enterprises tend to purchase new PCs in batches, typically prefer locked-down environments with a limited number of apps, and have technically literate support IT staff.
To attract the business desktop users, Meeks advises Linux desktop developers to spend less time tweaking things such as fancy desktop effects, which might be fun to work on but don’t add any extra value to the business desktop. “It is perhaps not glorious’ enterprises care little for the bling that doesn’t have a direct, inarguable business benefit’ and bling is fun to hack on,” Meeks writes, “but surely creating real value, that allows people to work more efficiently, reliably, and speedily has to be a satisfying thing to do as well.”
The desktop is evolving
Despite the dropping sales figures of traditional PCs, we aren’t saying that netbooks, smartphones or tablets will replace the traditional desktop. The desktop space is completely different.
For one, it has to support every piece of hardware. On the other hand, the mobile gadgets have a fairly limited usage space. Even though a tablet can have hundreds of apps, you still don’t connect it to a lot of different devices.
Rather, what we are getting at is that this new class of devices will have a major impact on how we interact with and use technology. You can notice the change already. For example, how many of you still print photos at home with a photo printer? Chances are that, like many, you just snap a picture with your smart phone, upload it to a photo sharing service such as Flickr, and then select the ones you want printed and send them to a printer, who delivers physical copies, all without ever coming into contact with a traditional desktop.
People should see a desktop operating system for what it really is, an application launcher. That said, an average desktop user’s dependence on a particular app is over-rated. For example, LibreOffice can satisfy all the word processing needs of an average desktop user. Sure, we won’t try to push Gimp down the throats of Photoshop users, but how many Photoshop users do you know of in real life?
The problem is a bit more complex on the commercial deployments, with all sorts of custom apps, as well as industry-specific apps, almost all of which are developed exclusively for the Windows desktop. But here, too, many applications have been pushed on to the cloud and are being served on a browser.
Furthermore, thanks to an increasing number of establishments embracing the Bring Your Own Device policy, and extending it to portable devices, such as tablets, the Linux desktop has a lot of room to expand.
So is the Linux desktop dead? Not by a long shot. It continues to thrive on the Enterprise desktop, and with a bit more vendor involvement could really break through on the consumer desktop as well.