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."