February 24, 2007

Analysis: Linus versus GNOME

Analysis — It’s no secret that Linus Torvalds, Linux’s founder, dislikes the GNOME desktop. In 2005, for example, Torvalds posted on the GNOME-usability list that “I personally just encourage people to switch to KDE.”

Torvalds feels this way, in part, due to his perception that “This ‘users are idiots, and are confused by functionality’ mentality of Gnome is a disease. If you think your users are idiots, only idiots will use it. I don’t use Gnome, because in striving to be simple, it has long since reached the point where it simply doesn’t do what I need it to do.”

In a recent series of posting to the Linux Foundation‘s Desktop Architects mailing list — a list for developers working on finding common ground, ala the Project Portland, for the various Linux desktop environments — Torvalds went into more detail as to exactly why he prefers KDE’s approach to the desktop, to that of GNOME.

There is a _huge_ difference between “being easy to use” and “_only_ being easy to use.”

“Being easy to use” is important, because it means that there isn’t a very high learning curve. That’s _good_.

“ONLY being easy to use” is bad, because it means that once the initial learning curve is over, maybe you know the program, but you can’t actually do what you WANT to do. And that’s *bad*. That’s *really* bad. It’s actually much worse than being hard to use to begin with, in many ways.

And one of the problems Torvalds has with GNOME is: “Gnome people seem to think that once you ‘got into it,’ you never want to do anything more. Not true.”

Christian F.K. Schaller, a senior GNOME developer, responded, “GNOME offers a lot of customization options, but some of them requires you for instance to get extra applications to easily get to. An often used such add-on for power users is Devils Pie.” In addition, “there are many more such add-ons available and of course a lot of things a power user can tweak using gconf-editor.” Schaller also invited Torvalds to give GNOME a try for a month.

Torvalds angrily responded, “Why the hell do you have to point to bogus programs that don’t actually do what I want?” Torvalds continued, ” I *know* what I want. I *know* gnome doesn’t support it. How do I know? I’ve used it. I looked at the code. I talked to the original author of the code. The author, and the code, all agree: gnome doesn’t do what I want.”

“I want something very simple: I want to configure my mouse button window events,” explained Torvalds. “That doesn’t sound so bad, does it? Everybody else can do it, gnome does not. My laptop has a two-button mouse, which means that I want the right button to do something more useful than show me the menu that I never use.”

So what did Torvalds do about this problem? He “actually wrote the code to fix the thing,” and “sent the patches off to add the capabilities” to GNOME.

This drives Torvalds up the wall, because he feels “gnome people always make *excuses*. It took me a few hours to actually do the patches. It wasn’t that hard. So why didn’t I do it years ago?”

As the thread continued, it became clear that the underlying problem is that Torvalds and the GNOME project have contradictory design goals. Torvalds wants to increase users’ access to the system to give them the maximum possible power, while GNOME aims to increase the system’s usability by making it as easy to use as possible. For GNOME, this means limiting access to the system from the GUI.

As Schaller put it, in a blog note on the discussion, the general GNOME policy is “‘no GUI options before thinking’. This policy did come into effect with GNOME 2.x and it came about both due to UI [user interface] design usability discussions, but also as a result of seeing our config menu’s get clogged with options which mostly where there due to bugs, missing features and a heterogeneous deployment environment below GNOME.”

In another note on the list, Schaller argued that, “My feeling was that you where extrapolating from your one missing feature that GNOME offered no configurable features.”

Torvalds agreed. “Sure I was. No question about that. But I’m not exactly extrapolating from a single feature. It was just one _I_ happened to care about, but others care about other features, and looking at the bugzilla discussions, I notice that people there argue about removing *other* config options.”

“For _me_ it was one missing feature,” Torvalds continued. “But that’s not what I use to extrapolate from. I use the *fact* that Gnome has in the past removed other features, and is *still* apparently talking about removing yet more config options from view.”

“WHY?” Torvalds asked. “It’s a disease, I tell you. The apparent inability to accept the fact that we’re not all a uniform gray paste.”

To this, Schaller responded: “Ok, so the ‘standard’ GUI tools of GNOME is what everyone who installs GNOME sees and gets, so the thinking has been that we should keep the default preferences and configuration tools without to many items in order to make navigating them quick and easy as the items which are there are things which are meant to be critical for people to be able to adjust.”

“I think part of the problem why this has grown to such an issue for people who don’t follow GNOME closely has been that maybe we have failed in GNOME to package and present the power user tools actually available in a good way,” conceded Schaller.

That still doesn’t answer Torvalds’ concern about having control easily available for users. “This is why you want graphical tools (that are there by default, so that you don’t have to know enough even to know to get them) to configure stuff even for ‘experts.’ Because I’m an expert Unix user, but that doesn’t mean that I’m expert in some Gnome internal configuration issues. I know what I want, but that doesn’t mean that I know how Gnome does it,” said Torvalds.

Christopher Blizzard, a Red Hat software developer and one of the designers of the OLPC project‘s (One Laptop Per Child) Sugar interface, summed up the conflict in his note to the list.

“I was in a meeting the other day where we were discussing this very issue in the context of OLPC. In that meeting it was called ‘the Ramp.’ The problem is described as ‘how do you keep something simple, but grow it to fit the level of experience of the user’,” said Blizzard.

“In GNOME I think we’ve done a very good, and somewhat painful job, of creating something that’s very simple and very usable for someone who sits down in front of the machine,” Blizzard continued. “I say painful because we’ve had to remove a lot of things that people were very used to in order to get a base experience that’s pretty good. But the thing that I think Linus is stumbling over is that canyon. How does he figure out how to get what he needs, which does exist in GNOME, without having to learn everything there is to know about GNOME?”

“If we’re ever going to grow beyond our small community, I think that what GNOME has done is important” added Blizzard. “You have to have a very simple base to start with. … Building a system that’s simple and friendly and works well is where we start. But we do need to figure out how to grow with our users in an unobtrusive manner. I don’t think that any of us have figured out how to do that, and you’re paying the price for it.”

What, as desktop Linux users, do you think about this matter? Would you rather have an easy-to-use universal interface, like GNOME, which makes customizing the system harder? Or, the more power-user stylings of KDE? Let us know in the talk-back thread listed below.