I <3 Steve McConnell*
Coding Horror
programming and human factors
by Jeff Atwood

June 26, 2004

UNIX will never be usable

A few months ago, Eric Raymond, the open source guru best known for his seminal paper The Cathedral and the Bazaar, posted a rant about the difficulty he encountered with a common user printing scenario in Unix.

The followup post is even more intriguing:

I am informed that an RFE covering the issues I raised has been registered on Red Hat Bugzilla. But quibbles over who is responsible for which piece of the CUPS-configuration mess are, as the letters above reinforce, not merely beside the point but evasions of the actual problem, which is a systemic one that affects thousands of other projects and our entire community.

Up to now, we haven't been willing to do the real work of making our software usable. It doesn't matter whether the the failure of the browsing defaults in CUPS to match the documentation was a CUPS-team screwup or a Fedora screwup — Aunt Tillie doesn't care which direction that finger points, and I don't either. No, the real problem is that whoever changed the default didn't immediately fix the documentation to match it as a matter of spinal reflex.

It also doesn't matter a damn whether the shoddy and unhelpful design of the printer-configuration tool came out of a CUPS brainpan or a Fedora brainpan. What matters is that whoever was responsible never audited the interface for usability with a real user.

The CUPS mess is not a failure of one development team, or of one distribution integrator. In fact, it makes a better example because the CUPS guys and the Fedora guys are both well above the median in both general technical chops, design smarts, and attention to usability. The fact that this mess is an example of our best in action, rather than our worst, just highlights how appallingly low our standards have been.

It's time for that to change. And the really heartening thing I got from the community response is that maybe we're ready for it to change. "I thought it was just me" — many, many of you out there are already dissatisfied with the poor quality of open-source UIs. but each of you has tended to think you were alone. No longer. It's time for each and every one of you out there to become public champions for the luxury of ignorance.

Good UI design is not a result of black magic, it just requires paying attention. Being task-oriented rather than feature-oriented. Recognizing that every time you force a user to learn something, you have fallen down on your job. And that when Aunt Tillie doesn't understand your software, the fault — and the responsibility to fix it — lies not with her but with you.

However well intentioned this observation is, and quite frankly, how obvious it is-- at least, to everyone outside the insular UNIX community-- I think Eric is barking up the wrong tree. UNIX will never be usable. It is awfully late in the game for the UNIX crowd to suddenly realize what other computer users have intuitively known since, say, 1984 and the introduction of the Macintosh: nobody gives a damn how technically competent your code is when they can't figure out how to use it. Without usability you have nothing.
It's been twenty years since the GNU Manifesto and nearly seven since The Cathedral and the Bazaar. I think it's time we stopped congratulating ourselves quite so much on our dedication to freedom and our ability to write technically superior code, and began more often to ask What are we doing to serve the real users? Good UI design, and doing the right thing by Aunt Tillie, ought to be a matter of gut-level pride of craftsmanship.
I think it is comically unrealistic to ask a community predicated on C code, kernel hacking, and the utility of command line tools, to suddenly wake up and get the usability religion. It just ain't gonna happen, because usability is not a part of the fabric of their culture. The open source and unix guys have had almost thirty years to come up with a usable GUI; why should history lead me to believe the next five years are going to be any different?

Usability is easily an order of magnitude harder than writing technically competent code, even harder than writing your own operating system kernel. You have to understand what users are actually doing, versus what they say they are doing. Open-source developers don't have time for things that are a pain in the ass-- like users, their conflicting needs, and their general disdain for computers and technology. They want to work on "the fun stuff", which doesn't include users pestering them every day. RTFM!

I expect to see usability enhancements from the companies which have cultivated a culture that respects usability-- primarily Microsoft and Apple. I'd love to see more usability in UNIX and open source, and I am encouraged by this sudden influx of concern, but I won't be holding my breath.

Related articles:

Posted by Jeff Atwood    View blog reactions

 

« What's worse than a Bad Error Message? Death to the Dialog Box »

 

Comments

I, too, am going through your old blog entries. I think this myth (UNIX will never be usable) is officially busted. Permit me to explain...

Quoting this blog entry: "The open source and unix guys have had almost thirty years to come up with a usable GUI" I won't argue that they've (we've) come up with more than a few, although we have, because that's not important. What counts is current and emerging practice, which is for web-enabled applications. I submit that these can be as beautiful and usable as any of the older, stand-alone graphic applications. True, there is still a number of classes of application which are not suitable for use via browser, but as standards improve and browsers are become more powerful, and that number is diminishing.

What we have, after 30 years, is a world in which most applications run on UNIX, and present on almost anything with a bitmap display. In the face of near universal acceptance, it would be rather stubborn for anyone to claim that UNIX is not usable.

David on December 10, 2007 06:46 AM

ubuntu.

budaboo on December 12, 2007 02:02 PM

hi how are you

saravanan on January 9, 2008 03:50 AM

hi how are you

saravanan on January 9, 2008 03:50 AM

i'm pretty sure jeff was referring to the GUI part as not usable, not how robust the underlying code is.

unix will never be usable.

jin on January 9, 2008 07:21 AM


You say that Apple have software that has high-usability.
You also say that Unix will never be usable.

That, my friend, is a contradiction.

Unix became BSD which became Apple Mac OS. Mac OS, the highly respected in terms of usability OS is a pure source code descendant of Unix. Not a clone... something that grew from the real thing.

Therefore...you lose!

Philluminati on January 9, 2008 07:25 AM

I find X-windows based desktop environments like CDE, KDE, and GNOME are far easier to use than Aqua; but, I like things like: focus-follows-mouse, virtual desktops, and the ability to resize windows from any edge or corner. Maybe I'm just weird.

Glasgow on January 9, 2008 10:14 AM

Hi Jeff,
No that time has passed, do you still believe the same?

Enrique on February 9, 2008 11:58 AM

I second Enrique's pontification, if you still think the same thing.

Philluminati - as he's talking about the UI, this is the key phrase:

Without usability you have nothing.

Rob on March 4, 2008 01:01 PM

@Philluminati :
>You say that Apple have software that has high-usability.
>You also say that Unix will never be usable.
>That, my friend, is a contradiction.
>Unix became BSD which became Apple Mac OS. ...
>Therefore...you lose!

You appear to have completely missed the point, which is that the culture in the open source community places a higher value on simplicity of implementation and elegance than end-user usability. No-one was saying that there's something fundamentally about Unix that makes it impossible to build a usable OS on top of it.

Also note that many of the bastions of traditional *nix systems, such as X Windows, were ripped out and replaced by Apple, directly because they *are* an impediment to usability. Can you imagine spending hourse tweaking xorg.conf with Xinerama to get dual monitors on a Mac? This would not have been acceptable to Apple. Dual monitors -- and, indeed, n monitors -- should Just Work, and, currently, they don't on a modern Linux distro.

(Yes, xrandr is improving things now. Reasonable xrandr GUIs are starting to come out, which makes it much, much easier to configure dual monitors. Note that this doesn't scale up: if you want three monitors, you're back to manually tweaking xorg.conf / Xinerama (unless you're lucky enough to have an nVidia graphics card, in which case you can use their binary drivers which have an easy multiple monitor configuration section. But not all of us are so lucky). Maybe, in a few more years, xrandr will be able to handle more than two screens, and X will be where Windows Mac OS were... 10 years ago. (Though I'm not saying Linux is a decade behind Windows & Mac OS in the general case; far from it. X Windows is the extreme example: the worst part of Desktop Linux at the moment. Other parts of Linux are, of course, at or even far ahead of their counterparts in Windows and Mac; APT comes to mind).)

Simon on May 11, 2008 09:56 AM

I'm curious to see if you know about/have heard about the recent issues with Pidgin's UI changes.

The developers behind Pidgin - for better or worse - take usability and UI design VERY seriously. To the point where every single option undergoes rigorous inspection before being placed on the UI.

This is the kind of design care that you are looking for - and this, I believe, is the right direction when discussing open source.

One of the primary advantages of the OSS philosophy with regards to the interface is that the DOING part of the software is kept separate from the USING part of the software - your interface plugs into your backend/engine.

This is the philosophy that MS/Apple have come to embrace - despite MS's numerous UI transgressions and their lauded "build the UI alongside the product" efforts in the past.

OSS often has the important bits complete - the backend - and very efficient and robust, but the interface is either neglected or designed for a niche (the developers).

I honestly believe this is simply something that will be addressed - never complete - but certainly better addressed in the near future.
If you look at X and the desktops that run with it, it has come along in leaps and bounds over the last ten years.

MS' efforts not so much, but getting there at a similar rate. Vista had a list of improvements to the UI which were touted as being a major step forward - and then got broken by a host of their own apps.

I can't speak for Apple, because my experience with it is far less complete than the other 2, but they've embraced the concept of separation of UI/engine beautifully in their OSX.

Jono on May 12, 2008 09:16 PM

usability == ubuntu

It might be time to revisit your stance on this topic... never say never.

Patrick on August 9, 2008 07:30 PM







(hear it spoken)


(no HTML)




Content (c) 2008 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved.