ESR rant about GUI design

I was very pleasantly surprised to see such abundant cluefulness in a rant by Eric Raymond (known as “ESR”) on the state of graphical user interfaces in open source software projects. He takes the CUPS project as a specific example, but he rightly says that it is only an example of the numerous projects that sin against the proverbial “Aunt Tillie”. Be sure to also read the followup article. The CUPS maintainers were actually very receptive to Raymond’s comments.

I must admit that I was floored. Raymond is one of the open source/free software advocates that frequently strikes me as being a bit too much of a zealot to be taken at face value. I appreciate that Raymond and people like him (such as Richard Stallman, known as “RMS”) must exist in order to help balance the scales toward the center, but I am frequently put off by his rhetoric. For once, however, I find myself in complete agreement with him. Now that open source has proved its technical merit, those that wish to make a significant step into the average user’s desktop must learn lessons such as the ones Raymond teaches here.

6 replies on “ESR rant about GUI design”

Amen. (And your observation about ESR and stallman are spot on, imho.)

to whit: “And it’s what’s keeping Microsoft in business — because by Goddess, they may write crappy insecure overpriced shoddy software, but on this one issue their half-assed semi-competent best is an order of magnitude better than we usually manage.”

This, in a nutshell, is central to why I am burnt out. One one hand, the system you wish to support is there, but appears to shun ‘usability’ like water off a duck. Do I code for gnome? KDE? custom design a java interface, use the windowmaker standards, or bow to the ‘good old days’ and simply provide CLI or a stubbed API and let somebody else worry about it.

On the other hand, clients want usability, so they demand an MS compatible system, which practically forces you into using MS IDE’s and development tools. And THAT is a fate I wouldnt wish on any hardened criminal. yeah, ok, it pays the bills, and some of it is ‘easy’, but some of it is corruptingly incorrect or just plain stupid.

And now I simply work with web application engines and workflow and document management interfaces for them… the UI can be defined by common sense and the clients needs, standards exist to govern how stuff is presented, my code is OO in Python (or Java if I were perverse and twisted, but I’m not). Its free, open, extensible, the available codebase haltingly meanders towards sensibility… its just right. My total output is much much less than it was years ago, but… I can handle it.

Thanks for the links to these rants and replies, they make for good reading.

I am so glad to see open source hackers writing about this. I get incredibly frustrated when I see advocates of open source solutions get all self-righteous and, in effect, say “Linux is just better. If you think it’s hard to use, then you’re an idiot.” It does my heart good for other people who are very experienced with computers to come out and say that these UI’s are not easy to use, and that Windows actually gets this right. I’ll say this, too: I have had basically no stability problems with Windows since I started using Win2k. Back when Win98 was current, the “blue screen of death” was a good argument for using Linux, but the stability argument is largely disappearing. Microsoft is getting this right as well.

I actually had another post on basically this same subject. I just went back and read it again, and pretty much all of it still applies. My wife will tell you that I don’t have any problems searching far corners of the net to find some tiny config file tweak to make my Debian server behave right. I love the flexibility, and honestly, I love digging around in the guts of server machines. However, when I sit down to my desktop, I don’t want to fool with it. I just want it to work, and I don’t want to have to go read an FAQ somewhere just to figure out how to print.

In short, it’s great to see technically competent people saying out loud that these UI’s stink. Maybe it will spur developers into fixing the problems.

Yeah jeff, I remember reading that post of yours way back, and thinking – “Sounds right, but I cant even comment, because I gave up on Linux as desktop after about 2 hours!”

I run OS X now. 10.3.3 it is freaking fantastic. it is delicious. it is almost PAINFULLY consistent. yes, some people hate the dock. yes some people hate chrome. but its gibralter in terms of stability, BSD-y enough to make me feel fuzzy and let me tweak if i need to, and the interface metaphor’s are consistent, consistent, consistent. (there are some areas that people liek dvorak have winged about, the save dialogs, but actually, they are perfectly consistent, they simply have more modes than his limited brain can comprehend).

As to the heart of his ranting, I think that it speaks to linguistic slippage. By this I mean that the metaphors that UI/coders and users use and the meaning that each group attributes to those metaphors, are different. From that simple distinction, I think all of this falls out. (but then, I’m a philosophy geek, so, I _would_ see it that way!)

Oooh. Cool article, Geof. It also links to a couple of other articles that also have some insight.

I’ll probably comment some more on this later, but I wanted to bring out one point that had never hit me before I read Gruber’s article. Gruber points out that ESR himself says that the point of a good UI is to make it so easy to use that a user doesn’t need documentation or to spend any mental effort trying to figure it out. But… remember how companies are supposed to make money on Open Source/Free software? By selling support. This apparent paradox is probably a bit simplistic, but it’s rooted in a pretty solid reality: you aren’t going to get wide desktop acceptance for open source software without good UI design, but once you have good UI design, you don’t need as much active support. Good UI designers who work for free are not too common. Given that you have to pay for that work, and support doesn’t pay the bills, how do you make money to pay the designers? Answer: you have to sell the software itself. If all that expensive UI work ends up in freely-available code, then what incentive do I have to buy the pay version? I’ll just download the free code and use it (in reality, I’ll probably support a product that I use a lot, but a business cannot count on this to pay the bills). So… what happens? Companies take open source code, build proprietary, closed extensions on top of it (usually to enhance usability), and sell the result. Now I have a reason to pay for the software: I can get the open source code for free, but if I pay, I get the nice interface.

I think this is a fundamental difference in the economics of software between the server market and the end-user desktop market. End users don’t pay for support contracts. I wouldn’t. If I can’t use and manage a piece of software on my own, I don’t pay someone else to help. I just don’t use it.

It all comes down to a pretty fundamental set of realities: the time a software designer spends writing good software is worthy of compensation. Making that software completely Free removes the incentive to pay for the code itself. So, either the stream of compensation is unreliable (so programmers often work for free), or the money has to come from somewhere else. In enterprise software, support is a valid source for that revenue. On the desktop, I just don’t see where that alternate revenue stream is going to come from, and I don’t see how the software can be consistently good unless you find a way to compensate the programmers.

Interesting stuff.

I don’t see where the revenue stream is, either.

But I do see that companies like DarkOrb, which makes the popular CPanel/WHM Web-GUI management package for *nix Web hosts, make a killing writing a frontend for a bunch of free scripts.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.