The Usability Wars

It's been fun following the collective's reaction to John Gruber's commentary on Eric Raymond's printer woes.

And it's been fun for a lot of reasons:

  • It is funny to consider the time it took one of the most proeminent figures on the Open Source world to actually acknowledge there are usability problems on (or BSD, or whatever). Even if he still has a printer with a parallel port.
  • The collective (very much like the Borg) never acknowledges they've been doing anything wrong - especially not anything with a technical bent. And since usability is of increasing importance on the desktop skirmishes, they've been in a profound state of denial ever since KDE and Gnome started dissing each other in public.
  • The amazing cluessness of some of the feedback, which bluntly states: "It's easy enough for me to use".
  • The even dumber feedback along the lines of "My distribution/environment does that better than yours", which is typical of the way they deal with most similar issues (but then, most of it was over at Slashdot, which has long replaced rugby as a spectator sport).

Now that John posted a follow-up, it's sure to be at least twice as fun. But let's look at some of the initial knee-jerk feedback before my own take on the issues.

And In The Red Corner...

For instance, this rebuttal purports to promote Gnome's superiority. I like Gnome. I would take it over KDE any day, if only due to the fact that it is simpler and more consistent than KDE, and (let's be clear on this one too) despite the fact that I believe KDE to have superior technical underpinnings (they just have the misfortune of having tasteless widgets and an inconsistent interface).

And let's be clear on one thing here: I'm writing this on gedit, Gnome's dinky little text editor. I could very well be doing it on vim, or VoodooPad, or Windows Notepad. I'd probably enjoy it more on, say, SubEthaEdit, but I'm doing other -related stuff and prefer not to switch to and fro.

(Yeah, I use something other than the every day. I'm not picky, but I know what works properly.)

The reason this (and other similar-minded rebuttals) fail utterly in dismantling John's points is quite simple: They mistake the trees for the forest. Application after application is paraded before us as if their existence in Gnome (and their features) is proof enough of Gnome's "superiority", and nothing of substance is argued.

Heck, the new Nautilus alone warranted an article that big, provided you focused on its usability enhancements (like spatial navigation and exactly why it matters).

So What Is Usability, Anyway?

And here's where even John fell short on his initial post - though he made up for it in the second. Tog's Book picks up on the "luxury of ignorance" principle (Eric does have a flair for nice catchphrases, if not for setting up printers) and rounds it off nicely with a set of real-life examples that everyone should read.

But if you're too lazy to read the book, let's just say that usability is the art of making your interface inconspicuous - if the user notices anything peculiar about your UI (or can't use even a small portion of it), you're doing something wrong. Tog doesn't put it quite this way, but that's the gist of it.

Zen And The Hard Work Of UI Construction

The main point John makes is that usability is not a "feature". I wouldn't go as far as considering it an art (after all, it can be measured and taught to most kinds of undergraduate chimpanzees), but it is surely an integral part of focusing on what your software is supposed to to and embodying the desired functionality into the design. This is best understood when considering usability in the physical realm (things like the original Palm handheld and the Series 60 platform spring to mind), but a point to remember is that it is always a software issue.

As Rick Schaut and Eric Burke put it, usability is a lot of hard work spent on ironing out even the smallest wrinkle. It is not something you "spray on" after the fact. It is either part of the design from the outset, or it isn't. No amount of paint will disguise hard, unforgiving edges.

Usability has no tolerance for hard edges - the only kind of edge users notice is the bleeding edge, and guess what, they don't like it.

Open Source Needs Sandblasting, Not Spray Painting

Despite the amazing accomplishments of KDE, Gnome, Mozilla and a few others, the trouble with usability in Open Source development is that (as Matthew puts it) UI design in Open Source projects doesn't work because of lack of focus and the "I like it my way" attitude. After all, when working with volunteers, it's hard to impose any sort of structured requirements on them - like cats, they will do whatever they damn well please and hack (or claw) at the "interesting bits" - which is, basically, anything that twitches.

So you get amazing pieces of engineering like the new 2.6 kernel (with a great I/O scheduler, or so I'm told), or (which, by the way, still lacks a decent client), but nothing that compares to, say, . Or , for that matter.

Sure, players will slice, dice, tag and scrutinize your music any way you want, but they are miles from making the process of picking out what you want to hear as efficient and enjoyable as .

The Odd One Out

Mozilla - most importantly XUL - is a fluke. It's probably one of the most underrated accomplishments of the Open Source community in UI terms, since XUL brought almost unprecedented flexibility in UI design - a feature that was somewhat eclipsed by Mozilla's excellent browser core, and that Firefox is trying to keep under control (it did go on sort of a rampage for a while).

Another factor for Mozilla's success (as a whole) was that here were zillions of people looking at it every day and depending on it for what is one of the most uncluttered computing activities possible (i.e., browsing), so folk literally sandblasted the rough edges from it usability-wise instead of spraying graffitti all over it. That's why it has type-ahead find and other little usability doodads that other browsers lack. It's polished, final, much more than usable - despite not having been designed for usability from the start.

Maybe the "sandblasting" approach will work for other Open Source projects (it at least seems more feasible than "spraying on" usability, because it implies going a bit more beneath the surface). I guess only time will tell.

Metaphorical Interlude

Paraphrasing Douglas Adams, it's hard not to form an opinion about something that sits on top of you every day, twenty-four hours a day. But it's entirely possible to spend twenty-four hours a day, every day, using something and not even notice it's there. That's usability from an Electric Monk standpoint.

And geeks, like Electric Monks, tend to fervently believe whatever they feel like is the ultimate, absolute truth, accepting no contrary beliefs and utterly blind to the obvious, until some new shiny revelation comes along.

And that's why none of them volunteers for UI work, ever. But let's change the subject.

The X-Windows Trauma

I hereby publicly accuse X-Windows of graphically castrating software design from a usability standpoint. The fact that most people who did fundamentally creative work on environments spent most of their time reinventing the wheel or building toolkits to abstract X's baroque innards (not to mention inventing yet another window manager) should be duly taken into consideration.

For years, twm was good enough. No, wait, I just remembered some people still think that way. Then we had fvwm, and Motif, and the hideous CDE environment (that, for all intents and purposes, only looked good on Irix). Today we have several dozen (hundred?) more.

The only really interesting thing that happened all these years (and it's been a while) is the way the window managers evolved into a mix of toolkits and environment managers. Why? To hide X's complexity, that's why. Toolkits provided convenient abstractions, and environment managers glued window managers to some sort of application launcher (mostly half-baked clones of a certain PC desktop environment circa 1995).

To me, the most amazing aspect of Gnome and KDE is not that they work in X11 - despite their base toolkits having been ported to other environments - but that they work at all under it. Any sane community would have inverted the paradigm long ago and grafted the "old" X protocol on top of a framebuffer-oriented design. But no, interface was not important, so the nutcases who actually delved into the X Toolkit to design new widgets (as I did, once) were few and far between.

Not to mention, of course, the hideous mockery of cut & paste that is a staple of any environment - KDE does its thing, Gnome does a similar thing, Mozilla agrees to disagree and xterm couldn't care less. Just try cutting and pasting perfectly ordinary pieces of text from an application to another using the exact same method and then get back to me.

The Usable Hat

To end what is fast becoming a long and insufferable rant, I'd like to follow up on John's nod to Havoc Pennington of : One of the most interesting things about 's default Gnome environment, for instance, is that it's very clean and consistent. There is very little visible crud, and some of the more debatable choices of the default Gnome environment were swept under the rug.

And I don't mean the desktop, or the application launcher, or the extremely well designed (and, in case you failed to notice, consistently colored) icons. It's the overall polish and smoothness of it:

  • Menu options are consistently tagged with accelerator keys (most of the ones I use, at least. OpenOffice - which is built on a separate toolkit anyway - is a usability minefield, or rather, a defectively cloned usability minefield)
  • Drag and drop works the way you expect it to (it at least exceeds my expectations of environments)
  • Cut & Paste use the same accelerator keys (except in terminal windows)
  • There is a consistent use of tooltips. And look, they all use the same color and font. This has got to be a first.
  • Users can customize their desktop (menus, launchers, etc.) using nothing but the mouse.

All in all, there is a cohesiveness to the whole thing that transcends the metacity window themes. Someone made sure it not only looked the same, but also (mostly) felt the same (even when you run KDE applications). And it makes the tired taskbar/launcher combination look good - simple, polished, efficient (dare I say reliable?).

It looks like a duck. It's increasingly walking like a duck, and makes the odd duck-like noise. You and I know it's not really a duck yet, but it's getting there.

But the sad part is that the real zealots will still be using twm thirty years from now.

Now, why the hell can't I paste this from gedit into Mozilla today?

Update: A nice piece by the Irate Scotsman just popped up on my feeds. A nicer overview than mine, I think.

This page is referenced in: