Big flame fest going on over at regarding print dialogs, “usability” and features. Kind of entertaining reading, kind of frustrating reading.

The paper tiger here is the tendency to assume intent behind any particular result. In this particular case it’s the assumption that options provided by a PPD printer driver aren’t exposed in the gnome print dialog because they’re confusing to the user.

I’ve seen a number of people complain about my own software (xchat-gnome) using similar arguments. “Those idiots! They removed the ability to get user information!” “Those idiots! They removed the ability to detach individual channels from the main UI!” Seeing people I’ve never heard from before say things like that in public forums is painful — most of the time, xchat-gnome development is just me, and I’ve got school, work, and several other projects, in addition to a usually-failing attempt at a social life. A lot of these kinds of problems are nontrivial (such as detaching), and just because something isn’t there doesn’t mean it will never be.

I wonder if anybody really talked to the gnome-print developers about getting UI for the extra PPD options. Judging from my own experience as both a user and a developer, I’d be willing to bet that their answer would be “well, it’s hard and nobody’s figured out how to do it right” rather than “we decided that our users were too stupid to use those features.” I’m not really familiar at all with these projects, so I’m just guessing.

There’s an old adage: never ascribe to malice what can be adequately explained by incompetance. I’d like to propose an equivalent for the open-source world (and gnome in particular). Never ascribe to malice what can be adequately explained by a lack of time and manpower. I can’t think of any free software author who is willing to sacrifice truly useful functionality in exchange for a slightly lower widget count.

In the ML thread, the word “usability” came up quite a bit. For the most part, people seem to be (quite correctly) pointing out that it’s a pretty meaningless word. I got to wondering — what does usability mean to me? I’ve written a lot of GUI software, and I generally consider xchat-gnome to be pretty “usable,” but I’m not sure I ever really came up with a definition. After some thought, here it is: Software is usable when it provides the functionality a user requires to execute a certain task, in a discoverable (or at the very least least well-documented and learnable) way, with said functionality organized in logically and a minimum of extra distraction or clutter.

As always, there are people more eloquent than I who have considered this problem. “A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away.”