DISCLAIMER: This site is a mirror of original one that was once available at http://iki.fi/~tuomov/b/


1. In the popular mindset, usability seems to be equated with what I'd call “approachability”, and from a certain background at that: that of someone brain-washed (sic) to the WIMP1 paradigm all vis2 life. While approachability is by no means an undesirable feature, it is not the same concept as usability, and is likewise a subjective measure. Someone who has used unix all vis life has easier time approaching some programs than someone who has used WIMP programs all vis life. While the set of programs that are easily approachable for the unix user, can be quite bit larger than that of the WIMP-handicap, the former set is by no means inclusive of the latter; some of the WIMP interfaces can be quite baffling, even the purportedly simple ones.

What is this usability then? First of all, there's no absolute, universal usability; in practise there are only differing degrees of subjective usability. An interface is the more usable, the less unwanted effort it demands from me, the user. By this definition, the WIMP interface is quite unusable, subjectively for me, as I abhor tedious repetitive clicking and searching, and it is I who defines unwanted effort. In the WIMP interface,

[i]nstead of an executive who gives high-level instructions, the user is reduced to an assembly line worker who must carry out the same task over and over. [D. Gentner and J. Nielsen: The Anti-Mac Interface]

Maybe some people enjoy such assembly line work, enjoy being mindless automata – although I doubt their numbers are that many – and thus the WIMP interface can be quite usable for them. For me, however, it is not usable at all for most tasks of any scale. There's only so little that can be expressed sufficiently well when

[i]t's as if we have thrown away a million years of evolution, lost our facility with expressive language, and been reduced to pointing at objects in the immediate environment. Mouse buttons and modifier keys give us a vocabulary equivalent to a few different grunts. We have lost all the power of language, and can no longer talk about objects that are not immediately visible. [op. cit.]

No, the traditional command line interface is not the zenith of usability, not even subjectively for me. It is only more usable – most of the time – than the WIMP interface. Neither is any interface I or anyone else is capable of imagining, the final stage of usability. It should not even thought that such a zenith exists: thinking we have reached one is a pessimistic, defeatist attitude; finding deficiencies in the present ones to improve upon them is optimistic, forward-looking.

Usability as defined above does not equal approachability in the long term. Approachability is a short-term concept: how easy it is for me start using the program/interface. Usability is a time-dependent concept: if I am only going to use the program once to do a single task, an easily approachable interface is quite usable, but if I'm going to be using the program a lot for many tasks, this is not necessarily so. Approachability and long-term usability are not mutually exclusive: an easily approachable interface may reveal more of its advanced and more powerful ways to accomplish tasks as the user gets acquainted with it. In practise, however, a great many approachable interfaces are quite unusable in the long term, and many interfaces that could be usable in the long term are not very approachable, sometimes almost irrespective of background. There are exceptions, however.

2. The joe text editor is an example of such an exception, at least relative to the alternatives. It is, or was, a rather approachable and still quite usable editor, subjectively for me in 1995 or so. When I first began using Linux, joe was the only editor I found, that I could well comprehend. Vi was quite a bit too different from the DOS programs I was used to – and many of them still beat the WIMPy and even ncursed shit that is available today – and emacs, well, the backronym Escape Meta Alt Control Shift is quite apt. The small feature that made joe quite approachable, was its help screen, toggleable with Ctrl-K H, advertised on the top status line. (Ctrl-K is much better a prefix key than the semi-hard-coded Ctrl-X hand-twister of emacs, by the way.) Now, while it may be possible to have a help document open in emacs in another buffer, these buffers are too clunky and difficult to use themselves for a beginning user. (Emacs is too clunky altogether.) Joe is no pico/nano/notepad, however. While it does lack scripting support, it does, however, have quite powerful editing capabilities built into it, sufficient for most editing (that pico/nano/notepad/etc. are not).

These days, the approachability (and to some extent usability) of an editor is measured by how easily I can configure it to use the joe-style bindings in my spine. It's not that I absolutely need those bindings, but in exchange for having to learn a new set of bindings, the editor should then offer something truly remarkable, and at least as good or even better bindings – and I've yet to see this. Most WIMPy editors, including IDEs, are automatically out of the question, because they seldom support prefix keymaps, seriously impeding keyboard interaction. (Perhaps not so coincidentally, even the fussydesktop.org (FDO) XEmbed kludge-of-a-specification also completely overlooks such a possibility.) Emacs also doesn't fare well, as it's from quite another world, and one would need to write thousands of lines of LISP (and many emacs users do so!) to override its annoying idiosyncracies and archaisms. (Emacs doesn't even support syntax highlighting of numbers without hacking! What a piece of shit “programmer's editor” -wannabe.) Only jed has so far passed my approval, although I've for some time been slowly switching back to joe, except for C development, because jed has many bugs, and the development seems stalled.


1 Windows, Icons Menus and a Pointer, or Weakly Interacting Massive Program.

2 Something picked up from Greg Egan's Diaspora, to get around the annoying – unusable – his/her distinction. Perhaps interestingly, while my native language, Finnish, does not have this distinction, in casual language, even the distinction between humans and objects is often gone: everything is “it” or “those” (although in English the distinction between “they” and “those” is a bit different).