There’s some buzz on OS News and Slashdot today about Linus Torvalds’ comments on the Gnome Mailing List. Torvalds trashes GNOME and tells everyone just to use KDE instead. The reason is interesting: “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."
Recently, I’ve been reading Don Norman’s excellent book on design, The Design of Everyday Things. Norman is a guru of usability, and I’d recommend his book to anyone thinking about interfaces. What I want to discuss is not really KDE vs. GNOME, but rather the more general issue of functionality vs. usability. This issue is explored rather insightfully in Norman’s book.
To make a long story short, we should avoid either extreme. An obsession with usability tends to result (as Torvalds argues about GNOME) in a simple product without any unnecessary parts (i.e., features). If you want a radio that’s easy to use, you pick one with just a few functions—on/off switch, dial for volume, dial for frequency. On the other hand, most of us associate such simplicity as inferior to a more elaborate setup with a myriad of controls and features. We look at the back of the box and want to see a long bulleted list of features. The more features, the better.
However, what most of us end up noticing is that we don’t tend to use most of the features foisted on us by the manufacturers. They are either unnecessary for daily operations or just too confusing to figure out and remember. We don’t want to fiddle with a parametric equalizer everytime we listen to our MP3 player. Likewise, many of us purposefully buy cell phones without cameras because we don’t want that extra "functionality" interfering with our ability to make a simple phone call.
It’s just as easy to pile on extra features as it is to take them off. The real solution is to offer the features without complicated the design. Features that will be frequently used should have their controls clearly visible and readily accessible to the user. Less-used controls can be tucked away and require a bit of digging in the interface to access. Many apps do this by creating an “ADVANCED" tab in their preferences. This is a good principle, but I’ve noticed on too many occasions that I am forced to access the “ADVANCED" tabs even when I want to do a rather common and trivial function. I also think the term “ADVANCED" is often misused—instead of "advanced" options, we only have more options tha didn’t fit on the other menus. In other words, the controls are poorly organized, leading to frustration.
Another of Norman’s insights is that the “cutting edge" of technology is always many strides ahead of the “cutting edge" of design. New technologies tend to have awkward interfaces. Gradually, design will catch up to the tech and make all of the new features easy to operate, but it takes time. Think about how long it took cars to become as reliable, comfortable, and affordable as they are today. Most of the improvements have been in usability rather than functionality.
It seems to me that GNOME is taking the stance that it’s better to do a few things and do them right rather than do many things and get some of them wrong. I see this as a very valuable philosophy and a great alternative that should be available for those who prefer usability over functionality. It’s sad to see someone as prominent as Torvalds dismissing the value of GNOME’s philosophy.