Torvalds bellows: 'The GNOME PEOPLE are in TOTAL DENIAL'
At last, somebody says something on Google+
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. ®
Re: Torvalds is turning out to be
Modded down firstly for an unsupported personal attack on Linus Torvalds. Secondly for using as a basis for that attack a comparison to someone who has almost certainly contributed a lot more to the Free Software movement than you ever have or ever will (all those lovely GNU tools Stallman had a hand in and all the promotion work he has done and his instrumental role in the origins of GPL). And finally for the presumed spur to your comment being this article about Linus criticizing Migel De Icaza when the latter has in many ways been a problem in the Free Software movement. For example, Miguel started Mono which is a .NET implementation for Linux and, the more popular it becomes, the more Linux is inherently placed on a backfoot by those who control the standard - Microsoft. Miguel also endorsed MS' OOXML document format. Ironically, I'm actually fine with OOXML on Windows, but I have doubts that it should be promoted as a standard in the Linux world, as Miguel has done. Particularly as at the time, it wasn't the actual implementable standard of OOXML that exists today, but the buggy unimplementable one that was initially rushed through ISO.
That you call Linus a "tool" for arguing with Miguel, that you catch someone who (even if you don't like him) has done way more for Free Software than you probably ever will and that you provide no support for your personal attack at all... yep - downvote for you.
Linux (as a distro, not the kernel) has certainly gone down the MS route of "we know better" with their users. GNOME versions have been laughable and things like Ubuntu's Unity might as well just come with one big red button that says "Press this if you don't know what you're doing" and zero functionality otherwise. I've actually avoided installing Ubuntu just for the same reasons. I *do* know what I'm doing and removing functionality or claiming that a "new way" is somehow better has to be backed up by a LOT of evidence and STILL might not be the best way of working for me.
The kernel, overall, gets this. I can still deploy just about any kernel I like on just about any relatively modern distro I like, and it's very much plug-and-play. I'm sure there are people with MCA/ISA devices that are upset about the removal of that API but, on anything vaguely modern, it "just works" and always has.
It's ironic (and a little backwards) that I now deploy Slackware with a 3.something kernel for my desktops, and Ubuntu LTS for my servers, purely because that maintains the control I want over the things I want. I don't want to faff with installing and resolving dependencies on a server and I don't want to spend HOURS turning off new GUI "paradigms" to get to a basic desktop where I can work.
GNOME always, to me, was second-place because of their so-called "perfection". Their interface was never as clean, as smart, as small, as quick or even as logical as other choices. But it's not just GNOME. Breaking people's systems and changing the way they work attracts derision for a reason - it COSTS to change the way you work. Even if the other way is 0.1% more productive (which it has NEVER been, mostly the opposite), the cost of retraining even yourself might never pay off and lead to mistakes and critical timing going out of the window ("Right, we have 100 desktops, secure them before next week" and, boy, are you in trouble if it takes ten times as long to find the options - if they even exist at all - to do that).
GNOME isn't alone. Even down to command-line utilities like the cdrecord package that decided that everyone should use only SCSI bus numbering to access their SATA DVD-RW caught flak. And rightly so.
It's a lesson that MS will soon learn. Don't annoy the user. Every freedom you take from the user, including the freedom to turn your junk off and configure it how they like, leads to dumber and dumber users (and thus attracts only those dumber users). This is why MS think they have to enforce turning off Autorun for me, 10 years after I did it for myself on every machine I've ever owned.
Linux doesn't want dumb users, particularly. Sure, if they can manage, they are welcome. But every dumbing down leads to more users doing dumb things and less people willing to help fix them or prevent them or work on the coding side of the project at all.
Dear Software-on-my-computer, You do not need to shield me from my computer when I'm running as a normal user. The underlying OS does that. You just need to work. And do what I tell you. And if I tell you to do something, do it (maybe with confirmation if I'm being incredibly dangerous). Not letting me turn off start screens, menus, notifications, sidebars, touch gestures, change hotkeys (can we use Windows-key yet to bring up the "start menu" in some desktop environments?), or even just telling me that you "know better" is a prime way to get me to move onto something else.
I don't care that you have to move software interfaces twenty times (that suggests you design badly, and also that you have no idea how to isolate changes at that level from what the user sees). My desktop is my desktop and I expect it to remain the same over periods of DECADES. It's as rude to change the way I work on my desktop as it is to come into my office and rearrange all my furniture and paperwork. And just as disruptive. Doing it once a year is NOT helping anyone.
RTFM attitude hasn't helped
I've used Linux since the days of Slackware and when I mention something related to a bad UI I'll usually get a defensive response along the lines of:
a) People should know how to do stuff through the shell
b) It's easy to get it working, just apply patch X and recompile the kernel
c) I use all those 1001 settings in the KDE control panel EVERY DAY and how dare you suggest some of them should be hidden
d) Yeah but Windows isn't perfect ergo criticism-about-Linux is somehow invalid
e) Go read the manual
Basically there is a core of people for whom no criticism of Linux will be brooked regardless of how valid it may be and it has hurt the platform. It's like talking to a motor mechanic about how a gearbox keeps sticking and being told well yeah obviously you have stripped the thing down and greased it yourself, making the assumption everyone is a motor mechanic and wants a car just to take it to bits and fix it.
The issue is compounded because a lot of the user interface decisions have traditionally been made by engineers with an engineer's mindset - utilitarian, lashed together, unforgiving UIs are commonplace in Linux. Very little effort goes into making the UI task-centric, forgiving, and simple. Simple doesn't even have to mean dumbed down - an administration console can be simple if stuff is arranged in a particular and anticipates the user's needs. Power users can always work around a simple UI. Novices or the disinclined can't work around a broken UI.
Fortunately some projects have tried a lot harder than others to add usability to Linux. Ubuntu and GNOME in particular have made huge strides to tame the UI. It's still a bit patchy but it's within spitting distance of commercial dists. Linux users should also remind themselves over and over again that OS X is built on top of BSD. If OS X can tame Unix then there is little excuse if Linux cannot.