Linux kernel big daddy Linus Torvalds and fellow developer Alan Cox have lashed out at claims that the culture surrounding the operating system's core prevented it from conquering the consumer PC market.
The pair also slapped down folks working on the GNOME user interface - a popular package among desktop Linux users - and accused the team of blaming others for GNOME's failings.
“The GNOME people claiming that I set the 'attitude' that causes them problems is laughable,” Torvalds stormed on Google+. “Some GNOME people seem to be in total denial about what their problem really is. They'll wildly blame everybody except themselves.”
Bearded Brit Cox seconded Torvalds, and accused GNOME for being nothing more than a “research project” instead of a practical desktop environment. Cox, a former kernel developer superstar who has contributed code over 18 years, walked away from the TTY subsystem he maintained after getting a typical Torvaldsian roasting in 2009 for criticising the buggy nature of Emacs.
Yet the dynamically linked duo paired up late last week to criticise GNOME and Migel De Icaza, who had turned a spotlight on the no-nonsense Torvalds-fostered culture of kernel development. De Icaza started the GNOME project with Federico Mena in 1997 as an alternative to the KDE desktop.
Writing on his website, De Icaza shared his thoughts on why Linux failed to break out as a viable consumer desktop operating system beyond something loved by a niche of penguin-hugging fans. He was responding to a WiReD piece on how Apple's Mac OS X killed Linux on the desktop.
De Icaza stated that within the GNOME project there was too much focus on bits, bytes, engineering excellence and technical purity that meant the platform was a constantly moving and evolving target - software interfaces would be broken and tweaked across versions, which is a nightmare scenario for third-party developers who want their apps to run on as many systems as possible rather than one particular build of GNOME.
According to De Icaza, this stems from Torvalds' insistence that the kernel is king, and that if compatibility with device drivers is broken across Linux releases, then that's how Finnish cookies crumble. The maintainers of drivers are expected to keep up with internal changes.
The GNOME project, taking a lead from the kernel team, developed an attitude that is the opposite of Microsoft's mostly conservative strategy of keeping software interfaces consistent across its Windows desktop platform. Redmond's approach attracted app writers, and their wealth of software enticed users, helping to entrench Windows on personal computers. Ironically, the Linux kernel team also strived to keep its external software interfaces consistent across releases, but this effort was apparently too subtle for the GNOME team to notice.
De Icaza blamed Torvalds for setting “the tone” of the Linux community “when he dismissed binary compatibility for device drivers”. The developers working on the GNOME desktop layer took up the "it's OK to break things in pursuit of excellence" attitude as a mantra, according to De Icaza. He wrote:
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.
We deprecated APIs, 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".
We replaced core subsystems in the operating system, with poor transitions paths. We introduced compatibility layers that were not really compatible, nor were they maintained. When faced with "this does not work", the community response was usually "you are doing it wrong".
After coming under fire from Torvalds, De Icaza later went on to say that too many people in the Linux community tried to act like the quick-to-temper kernel chieftain, and that made them “mean and harsh".
“My take is that you are brilliant, clever and funny, and you can also be mean and harsh. Many people tried to imitate [Torvalds], but they were neither brilliant, clever or funny. They just turn out to be mean and harsh and this attitude spread on the mailing lists," he wrote.
“So the message that most people heard was we do the right thing, even if we break software. And they did.”
Following up on Google+ to De Icaza's post, Torvalds unloaded on De Icaza and the GNOMEs: “I wish the GNOME people had understood the real rules inside the kernel. Like 'you never break external interfaces' - and 'we need to do that to improve things' is not an excuse,” he wrote.
Torvalds reckons Linux has been successful because it hasn’t forced a “huge vision” on people, with development after 1991 being driven by outsiders.
“[Linux kernel development] is exactly the reverse of the GNOME 'we know better' mentality, and 'we will force Corba/.NET down your throat whether you like it or not, and if you complain, you're against progress, and cannot handle the change',” Torvalds fumed. ®