Become a fan of Slashdot on Facebook


Forgot your password?
Editorial Programming Software IT Technology

Open-Source Software and "The Luxury of Ignorance" 1471

Bootsy Collins writes "Using the recent experience of trying to configure CUPS on his home network, Eric Raymond has written an interesting new screed on poor design of user interfaces in general, and configuration interfaces in particular, in open source software, entitled The Luxury of Ignorance. A sample quote: 'This kind of fecklessness is endemic in open-source land. 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 discussion has been archived. No new comments can be posted.

Open-Source Software and "The Luxury of Ignorance"

Comments Filter:
  • In related news (Score:5, Informative)

    by prostoalex ( 308614 ) * on Thursday February 26, 2004 @10:06PM (#8404132) Homepage Journal
    JWZ was trying to get video to play on his box []. More than a year old, but still a good guide to interface design.

    • Re:In related news (Score:5, Interesting)

      by smittyoneeach ( 243267 ) on Thursday February 26, 2004 @10:44PM (#8404490) Homepage Journal
      A similar diatribe to ESR's could be written on trying to burn a backup DVD under RH9. Gave up; I just FTP my backup over to my Lose2003 box, where the driver worky-worky.
      • Re:In related news (Score:5, Informative)

        by Anonymous Coward on Thursday February 26, 2004 @11:50PM (#8404969)
        The trick to gettting dvdrecord to work is to know that it only supports "-dao" on most drives.

        I routinely bittorent avi's and recode them as mpegs and use dvdauthor and dvdrecord to carry neat videos back to my parent's DVD player to show them. It bridges a generational gap.
    • Re:In related news (Score:5, Informative)

      by GMC-jimmy ( 243376 ) on Thursday February 26, 2004 @10:46PM (#8404503) Homepage
      More than a year old, but still a good guide to interface design.

      That isn't a 'good guide' at all! It's barely more than a rant if you can manage to read between the lines.
      Here's some useful links to UI design concepts.
      I got these from the default installation of Mozilla.
      Bookmarks > Mozilla Project > Developer Information > User Interface Design:

      Macintosh Human Interface Guidelines []

      IBM/Ease of Use/Design []

      Microsoft User Experience and Interface Design Resources []

      KDE User Interface Guidelines []

      Since these links come from an older install of Mozilla, some may have changed.
    • by mrroach ( 164090 ) on Thursday February 26, 2004 @10:59PM (#8404604)
      If you want good interface design, look no further than ESR's own beautifully [] designed [] fetchmailconf [].

      Not to say that he doesn't make good points, but... well... just look at the screenshots.

      • Re:In related news (Score:5, Interesting)

        by black mariah ( 654971 ) on Thursday February 26, 2004 @11:06PM (#8404665)
        Being pretty doesn't make it USABLE, and being ugly doesn't make in UNUSABLE. I was messing with fetchmailconf one day and had everything configured rather quickly. I had no previous fetchmail experience going in, and was pretty new to Linux in general. Usable, but ugly.
      • Re:In related news (Score:5, Informative)

        by GAVollink ( 720403 ) <gavollink AT gmail DOT com> on Thursday February 26, 2004 @11:14PM (#8404708) Homepage Journal
        It may be ugly, but in every case (save the shot behind the fetchmailconf link) there is a separate help button for every item. The "designed" link has a perfect example of a "probe for supported", as he is asking for in his article.

        Here's where I cave a little... On the last screen shot, it did take me a little too long to figure out that the password being asked for is listed in the topmost sub-section. However, I'm confident that the help button would have told me what I'm looking for.

        If anything, mrroach's post does point out smartly that the article is a plug to "do things more like I do". Yeah, not so "pretty", but sure as feces, it won't get Aunt Tilly too flustered.

        • Re:In related news (Score:5, Insightful)

          by 110010001000 ( 697113 ) on Thursday February 26, 2004 @11:26PM (#8404796) Homepage Journal
          What are you talking about? Each one of those dialogs are HORRENDOUS!!! For instance, look at this one:
 les/HO WTO/6454f1.png

          "Configurator novice Controls" with a "Save" "Help" "Quit" button underneath? What the HELL does that mean? Why isn't novice capitalized? What am I saving by clicking the Save button? A configurator novice controls? Why arent the buttons at the bottom like every other dialog box in the planet?

          I won't even comment on this one:
 les/HO WTO/6454f3.png
  • by JoshuaDFranklin ( 147726 ) <`moc.oohay' `ta' ... nilknarfdauhsoj'> on Thursday February 26, 2004 @10:06PM (#8404133) Homepage
    Here's all he actually says (it's at the end):

    So, if you are out there writing GUI apps for Linux or BSD or whatever, here are some questions you need to be asking yourself:

    1. What does my software look like to a non-technical user who has never seen it before?
    2. Is there any screen in my GUI that is a dead end, without giving guidance further into the system?
    3. The requirement that end-users read documentation is a sign of UI design failure. Is my UI design a failure?
    4. For technical tasks that do require documentation, do they fail to mention critical defaults?
    5. And, most importantly of I allow my users the precious luxury of ignorance?
    • by DRue ( 152413 ) <drue AT therub DOT org> on Thursday February 26, 2004 @10:10PM (#8404173) Homepage
      We'll never get to this point if every time two people disagree they split the project. Project forks are good to an extent - but I think that we lose a lot more than we gain because of it. At least MS has a meeting and decides how to continue - we, the OSS community, just get pissed off and branch.
      • by tc ( 93768 ) on Thursday February 26, 2004 @10:34PM (#8404394)
        Or just split the difference, keep everyone happy, and decide to do both proposals. Hence leading to configuration boxes from hell adorned with approximately seven thousand checkboxes.
        • by hayden ( 9724 ) on Thursday February 26, 2004 @10:46PM (#8404507)
          Meetings: None of us are as dumb as all of us.
        • by prockcore ( 543967 ) on Thursday February 26, 2004 @11:36PM (#8404866)
          Or just split the difference, keep everyone happy, and decide to do both proposals. Hence leading to configuration boxes from hell adorned with approximately seven thousand checkboxes.

          Ah, I see you have discovered KDE's design guidelines.
        • by Jerf ( 17166 ) on Thursday February 26, 2004 @11:38PM (#8404884) Journal
          We'll see how this goes, but in my open source project, I'm planning on instrumenting the program to allow the users to (voluntarily and anonymously, of course) report to the project server which preferences they are twiddling and which commands (i.e., menu commands) they are actually using.

          I'm hoping this will let me chop at the features and preferences and get away from "I'M A LOUD USER AND WHILE I'M THE ONLY ONE WHO TWIDDLES MY BAZZLES I'LL CRY IF IT'S REMOVED" by virtue of having hard numbers. (I made a Fruedian slip and typed "lout user", which works too.)

          (You shouldn't have bad spoofing problems until the project is much larger, by then I'm hoping to have a better gestalt understanding.)

          Feel free to snarf this idea, I'd love to see it more often.
    • by ratsnapple tea ( 686697 ) on Thursday February 26, 2004 @10:37PM (#8404418)
      Programmers should definitely code with these questions in mind, but I think it's even more important to recruit people who are skilled in UI design so they can knock some sense into the coders every once in a while. Coders can't, and shouldn't, be expected to always focus on usability--for most engineers it's not their area of expertise. Likewise, UI people shouldn't be expected to have to code just to get a feature implemented the Right Way.

      There's plenty of graphic designers and UI experts in the employ of Apple and Microsoft who probably couldn't code their way out of an infinite loop. I don't know that the same can be said of most open source projects.

      • by yerfatma ( 666741 ) on Thursday February 26, 2004 @11:18PM (#8404738) Homepage
        That's the problem. I can't stand the UI requirements we have to meet at work, but I try to accept them anyway, because I know I'm not the end user and my understanding of how a tool I'm building is "supposed to work" has nothing to do with how it will be used. It's like QA'ing an app you've built. You can't do it, at least not well, because it's so natural to stay inside the accept ranges of what you've built.

        I don't know the answer. The only reason I give into UI requirements at work is because I have to to get paid. That incentive isn't there for open source projects, so there is the danger projects will fork off. I know some comments above don't see that as a danger at all, but it is a waste of resources if two teams are building the exact same things instead of moving forward on other pieces.

      • by Anonymous Coward on Thursday February 26, 2004 @11:43PM (#8404923)
        There's plenty of graphic designers and UI experts....

        mistake one in interface design is thinking its graphic design! Better looking buttons lead to user interface improvement with about the same frequencey that a new paintjob fixes your car's transmission.
        • by CornHole ( 735049 ) on Friday February 27, 2004 @01:19AM (#8405494)

          mistake one in interface design is thinking its graphic design! Better looking buttons lead to user interface improvement with about the same frequencey that a new paintjob fixes your car's transmission.

          You are correct, pretty buttons does not a good UI make, however, UI design -- user-centered UI design (layout, workflow, etc., etc.) is VERY important. To continue with your analogy, your car has power-steering. But, human-interface designers made it so you get some tactile feedback from your car's steering wheel at speed (as opposed to the 60's Caddies which you could steer at 65 with your pinkie).

          It's the "design" process that's important. 1. What is this "thing" supposed to do. 2. What does the user(s) expect/know. 3. How's the user(s) going to act/react based on #2. 4. What's the simplest, most effecient and effective way to get to the desired end result given #1 #2 and #3 for as many cases as possible.

          Photoshop doesn't make you a graphic designer; programming skills don't make you a UI deisigner.

          Do what you do. Engineers engineer, programmers program, and designers design, but just like you wouldn't have a electical engineer engineer a bridge, or a web developer programming embedded system, you shouldn't have a graphic designer designing a UI... IMO.
  • by KingOfBLASH ( 620432 ) on Thursday February 26, 2004 @10:07PM (#8404145) Journal
    That's not necessarily true. Mandrake [] set up CUPS and just about everything else I've needed with no problems at all. It's all about what you're doing. For some programs under some distros you need to be a programmer to install and / or set them up. Under other distros, and with other programs, it can be a breeze. (Just look at how well Knoppix does!)
    • by s4m7 ( 519684 ) on Thursday February 26, 2004 @10:44PM (#8404487) Homepage

      The fact that he mentions using Fedora core kind of discredits his whole argument against the "open source community" and the "CUPS Team" when what he is really denouncing is his linux vendor. It's been kind of an understanding for a long time that it was for the OSS community to build, and for the Commercial distro vendors to "clean up" for Joe and Jane End-User. It's a shame that he never makes that clear, and I'm sure if I were on the CUPS team I would be a little offended at the way ESR is explaining away his^H^H^H aunt tillie's failure to read the dox, search the list, and otherwise be completely "luxuriously" ignorant. Go buy windows. OSS isn't really a fair proposition if you don't have something to contribute.... or at least meet the developer half-way.

    • by Anonymous Coward on Thursday February 26, 2004 @10:44PM (#8404489)
      It was easy for you because you know what the heck you're doing already. I've got over a dozen years of UNIX printing experience, and every single bozo trap that Eric mentioned is a real flaw in the CUPS design, including the Mandrake installation. I got past them because I'm a flipping expert, but for newbies they're a nightmare.

      In fact, for Mandrake, did the CUPS installation mention that you have to set up xinetd by hand to run the cups-lpd daemon to even *run* the admin interface, or did Mandrake add it to the RPMS by hand themselves? It's most certainly a stage never mentioned in the source tarball nor is it included in the RPM spec file that comes with the tarball.

      I built and tested it last week to try new printer drivers, and no, it's not there. And the addition of new printer drivers is pretty damned secret, too....
  • -1 Troll (Score:5, Funny)

    by nmoog ( 701216 ) on Thursday February 26, 2004 @10:09PM (#8404166) Homepage Journal
    What a rant! Im going to send mod points to Eric Raymond's house by mail.
  • by lavalyn ( 649886 ) on Thursday February 26, 2004 @10:09PM (#8404171) Homepage Journal
    Ignorance and the user won't step out of their bounds beyond their Internet Explorer and Outlook. Unfortunately, others like Gator and BetterInternet will do it on their behalf.

    In the end, a computer is more like a car than an oven, capable of great power but requiring a good deal of knowledge to use (and not run over people in the process).
    • by el-spectre ( 668104 ) on Thursday February 26, 2004 @10:17PM (#8404238) Journal
      True, and a computer takes some skill to use. It's not fair to expect the average user to be an expert just to do some simple configuration.

      Hell, I'm a half decent tech geek, and I struggle to do many config tasks even on user-friendly distros like Fedora.

      Should it require significant skill to update the kernel (and know what you're doing?) ? Sure. But to install simple hardware? Hell no.
  • by GNUALMAFUERTE ( 697061 ) <<moc.liamg> <ta> <etreufamla>> on Thursday February 26, 2004 @10:12PM (#8404201)
    How Important developers of the GNU and Open Source Movement are living the obscure land of kernel hacking and going to write some userland code. Many times, in Free Software, the underlying system, the lower level development is made by the most competent developers, and so is robust, stable, actually the best out there, but the front ends, well, they just don't have the same quality, so, for the unexperienced user, it looks like crap. I think it's time that we change this, and start showing that GNU can also be reliable on the Desktop, not only showing how fast it is, but also good end-user interfaces. It's not that i don't like KDE, GNOME, XFCE, etc,etc, they are ok, but i think that if we put the best people to work on it, they will be even better.
    Linus has been talking about this recently, are we going to start seeing things like Linusorganizer, Linword??, hehe, that would be nice.
  • by crapnutassneck ( 243159 ) * on Thursday February 26, 2004 @10:14PM (#8404211) Homepage
    I honestly have not ever heard someone use that term outside of The Clash. I shall use it tomorrow a minimum of twice.
  • by bluGill ( 862 ) on Thursday February 26, 2004 @10:20PM (#8404269)

    The problem is in Fedora, not Cups. Cups works just fine, and more or less like he wants it to, if that is all you ever use. Fedora, using whatever configuration system it uses placed some unuseable stuff there.

    Granted Cups could use a lot of help, but he wasn't using a Cups configurator, he was using some other configurator that can work with not only Cups, but also SMB, LPR, and a bunch of other stuff. I don't know the solution, but bashing the Cups guys won't get you any closer to it.

  • First of all, as a self-taught Linux user I am delighted that someone as talented as ESR can have a hair-pulling session doing something like setting up CUPS. I have had many an evening like this. Excruciatingly close to getting something done, something that should be simple, and instead spending hours feeling stupid and incompetent. He's right, and he's right about the fact that this is why there are countless unused Linux install discs littering desk drawers under Windows machines, tried and abandoned by people who hate Micorosft, hate Windows, who would LOVE to support an alternative, but can't make it work.

    The user is the loser. There's a clubby, exclusive, snotty attitude among user's groups. The online resources are hopelessly disorganized or relentlessly dinged with ads. The vision that Stallman has of software as knowledge, rather than product, is lost among the throng of sociopaths that spout RTFM at users that ask the same questions over and over.

    Well, you know why people have the same questions over and over? Because the software is obscure and the documentation is unhelpful. GNU is based on people solving their own problems and then giving other people an opportunity to use thier solutions. Documentation, at best, is an afterthought. Once you have solved a problem, there's no need to go back and explain it to yourself, any documentation that does exist arises purely from the virture of developers, not because they need it themselves.

    The fact that the most useful thing you can have with this enormously powerful gem of human progress (the computer) when trying to use Linux is a printed-out HOW-TO, probably downloaded and printed from a Windows box, is more than ironic, it is shameful. The tools for providing context-sensitive help are there, they just are unused. The developers don't care about the user, they've solved thier problem by this time.

    If OSS developers needed robust documentation in order to distribute their product, they would either develop it or not distribute their code. But they don't. There's no reward for the developer.

    This brings me around again to the notion of licensing software developers and then making them accountable for the usability of the product. Not as an avenue for exclusion, but to build a community of developers devoted to the user, a Mr. Goodwrench sort of certification standards, that tests it's releases against naive and novice users. How you make this work I have no idea.

    Red Hat should be doing this already, but they've clearly left the home user at the altar.
  • He's right (Score:5, Insightful)

    by blincoln ( 592401 ) on Thursday February 26, 2004 @10:22PM (#8404290) Homepage Journal
    I always try and get an open source-coding friend of mine to understand this, and it never seems to sink in.

    Interface design is an incredibly important part of any software project - it's like the clothes you wear to a job interview. Sure, you *might* get the job if you wear your regular jeans and t-shirt, but if you take the time to dress up, you will create a much more favourable impression on the potential employer you are meeting.

    Similarly, taking the time to make your user interface polished and intuitive is one of the best ways to end up with happy end users who tell other people how great your software is. It lets them know that you care enough about the software you create to spend a few extra hours making it look nice instead of shoving it out the door as fast as possible.
  • but he's right (Score:5, Insightful)

    by Anonymous Coward on Thursday February 26, 2004 @10:23PM (#8404297)
    You're all missing the point. Trying to configure CUPS does suck if you're on your own trying to figure it out. Anything with Linux is this way. I'm not a college-aged dork sitting in a dorm not getting laid with 20 other dorks playing EQ. I'm trying to figure out how to use this powerful tool, and if I have to spend 3 days studying dusty man pages to set up a frickin' printer - forget it. Takes me 10 minutes to write a script to install a queued novell printer when I click on a NAL - and then leverage that against 10,000 machines that I don't have to touch. Will Linux do this one day? I hope so.
  • Yep (Score:5, Insightful)

    by The Bungi ( 221687 ) <> on Thursday February 26, 2004 @10:25PM (#8404310) Homepage
    And then when you (humbly) send an email or post a suggestion about how to (possibly) make [insert technology] a bit more friendly, the responses tend to go like this:

    • [no response. evar]
    • This is different from Windoze - I know that! I don't want "Windoze" (how cute, BTW) I want to tell you that your fucking design sucks rocks!
    • If you want stupid, use Windoze instead - Again, very cute. Also arrogant and stupid.
    • This is how it's done in Linux - Well shiieet, of course it is. That doesn't mean it's correct.
    • Did you RTFM|Google? - Well of course, for the last fucking 4 hours, just.
    • The next version will have... - That's great except that if I Google for what you said about this version I see the same thing. Wow, Usenet is great, eh?
    • We're not going to add that, that's stupid - Of course!
    • Use [x] instead - Yeah, except that [x] has been in alpha for the past nine years.
    • Check out [this page] - Fantastic. If that's not a 404 I guess I'll have to learn Japanese! Weee!
    • You're welcome to ask for a refund - Wahahaha!!!
    It takes a rant from ESR (who despite his pretensions doesn't know much about human interaction) to get people to do things right? Wow.

    I always get a chuckle when people compare Linux to OS X or Windows in usability terms. KDE looks absolutely fantastic after I log in, but the fun stops there. If I actually want to do anything else I have to fire up vi and edit 1,000 conf files. Give me a break.

    And yes, ESR is right. This is one of the things that keep Windows users in Windows and perpetuate what you folks call "monoculture". Whining about it and blaming everything on "M$" won't fix anything. Great software ultimately sucks if I can't use it.

  • by salimma ( 115327 ) * on Thursday February 26, 2004 @10:27PM (#8404338) Homepage Journal
    The article was insightful, and it contains some things I still did not know after wrestling with integrating CUPS, Turboprint (crappy Canon printer) and Samba, but to be fair to the CUPS developer, they did not write redhat-config-printer; Red Hat did.

    CUPS and Turboprint works well, as it turns out, the problem is that printing from OOo (Linux), printing from OOo (Win) using CUPS' postscript driver, and printing from OOo (Win) to a Windows printer results in different page margins being used. Bummer. At least the fonts look identical if the same fonts are used on both ends.

    And for those people with new Winprinters wondering why raw printing from Samba does not work anymore, you need to add the Windows user as a printer admin. Not documented *anywhere*.
  • by pavera ( 320634 ) on Thursday February 26, 2004 @10:30PM (#8404356) Homepage Journal
    All in all a pretty decent article.
    I agree with many of his points, if there is one thing I dislike in the *nix culture it is the elitism, and holier than thou attitude that many people in said culture have towards users. This is just one more sign of that elitism, we spend hours and hours making very good stable, well designed software, and then we demand that you read a 1500 page book to be able to use it... That's stupid, now you can say "if they don't want to learn they shouldn't be using this software" but that's dumb too... my dad is an attorney, he wants to work on cases, and do legal research and the like, thats what he's interested in, he doesn't want to spend an hour a day figuring out how to share printers/files and send emails, and he doesn't want to have to pay someone $150/hr every time he needs to add a printer to his network. My wife is a psychologist, she wants to care for her patients, and work on her book, she doesn't want to be bothered with figuring out how to configure her computer, and she shouldn't have to be... That said, the author shouldn't have been bashing the CUPS guys, the configurator in question is an inhouse product by redhat/fedora, no other distribution uses it, and the default setting of having the broadcast turned off was also a decision by redhat/fedora not the CUPS programmers (well it might have been made by the CUPS devs, but redhat/fedora had every opportunity to change that default behavior). I appreciate the article though because he is right on in critisizing the community for their lack of vision in this regard. (btw, I admin a 7000 node network, and the entire thing is controlled by linux and unix servers, there are windows nodes, but I would never run windows on the server side, and I rarely use it on the desktop either so don't count me as some MS apologist)
  • by Commykilla ( 107585 ) on Thursday February 26, 2004 @10:33PM (#8404380) Homepage
    It's really easy to jump on the Anti-Microsoft bandwagon when it's time, and say "Linux is ready for the desktop, it's high-quality and easy to use, why doesn't it overtake that crap from Redmond". But, when push comes to shove and sombody points out the things that scare off non-technical users from using Linux, OSS "advocates" really seem to have a hard time accepting constructive criticism.
    Look -- if it's just a hobby OS, fine, this criticism is totally baseless and cruel. But, if you all want to see your labor of love have a real shot at the desktop market, you're going to have to take criticism like that and work with it -- if it seems angry, it's because end-users get frustrated when they're promised an easy-to-use system, and they have to spend more time wrestling with configuration than actually doing what they need the OS to do.
    Either take the criticism as advice and use it to add value to your software so it can be accessible to a larger audience, or accept that your OSS project is just a hobby.
  • by rduke15 ( 721841 ) <.moc.liamg. .ta. .51ekudr.> on Thursday February 26, 2004 @10:35PM (#8404402)
    Well, in fact, setting up a network printer in Windows is certainly not better.

    You have the choice between "Local printer" and "Network printer". If you do have a network printer like an HP with a JetDirect card, the correct choice is NOT "Network printer". It is "Local printer", and later you have to add a "Standard TCP/IP port". ("Network printer" is only to add a printer shared over SMB by another computer)

    So while he has a good point on a bad interface, and while it is true that for some things Windows may have a better interface, it certainly doesn't for networked printers.
  • So true (Score:5, Funny)

    by bunhed ( 208100 ) on Thursday February 26, 2004 @10:36PM (#8404405)
    I remember trying to get fetchmail to work. What a nightmare.
  • by djkitsch ( 576853 ) on Thursday February 26, 2004 @10:40PM (#8404449)
    It's fine to say RTFM to a spotty student who spends his entire free time in front of his Linux box, but ESR is making a valid point that no-one seems to pick up on:

    Most of us don't have the time

    I work from 9am to 3am every day, including weekends. I would love to run Linux, purely because Microsoft's pricing and attitudes bother me, but the last time I tried to set up Red Hat, it took me 4 days to get the system to even recognise my video card.

    We're not just talking about Aunt Tillie, we're talking about Joe B. Power User, who may have the skills to work it out eventually but simply does not have the time.

    Wheras, I plug my Windows XP machine (and yes, I know this is only a recent thing) into the network and Universal Plug and Play makes network printers accessible without my having to so much as touch the PC. Now that's what we want from a Linux distro, and it's not even hard to implement. Why should I have to wade through a dozen .conf files to get Linux working, only to attract abuse from the same people who encouraged me to use it in the first place?
  • by Zcipher ( 756241 ) on Thursday February 26, 2004 @10:46PM (#8404508)

    I notice that most of the comments thus far seem to be along the lines of "We don't need to improve the interface, the users need to get better because they're too dumb to use it right, and they should just learn cause then they'll realize how much better it is!"

    This is a common mistake made by programmers. The problem is that not that users are actually all that stupid. The problem is that we tend to think of things in terms of how they're doing something, whereas users want to think of them in terms of what they're doing. For example, I want to set up DHCP to distribute IPs to my OSX box so I can use SMB to pull MP3s off my XP box. This is not the way a user thinks; the average user wants to hook his Compaq to his Mac so he can move around his music. He doesn't want to know what any of those acronyms stand for. He just wants to accomplish a simple task.

    Bottom line: the best way to write a good interface is not to think in terms of "what is my software doing" but rather in terms of "what is my user doing." Like my human interface design professor used to say, if people can't use your software, it's not because they're stupid, it's because you designed it poorly. Users prefer usable software to powerful software, when given the choice.

    Another point to consider is that, in the eyes of the Managers of potential corporate users of your system, any time employees spent learning all the details of your software is time taken away from getting actual work done. Not to mention that sloppy interfaces that haven't been properly checked often actually COST most companies money, since their employees actually often take longer than it would have otherwise. Good interface design is not a luxury, it is a mandate.

  • by _Hellfire_ ( 170113 ) on Thursday February 26, 2004 @10:48PM (#8404517)
    I generally take ESR's rantings with a pinch of salt. I understand where he is coming from but I think sometimes he has a tendency to go over the top. However in this piece he is right on.

    I am a geek. Not only do I know a shitload about computers I actually work in the industry as a field troubleshooter technician. I have to say though, that although I use Linux on a daily basis on my work PC as my main OS, it still throws me for a loop sometimes when I go through what ESR went through with whatever piece of technologically advanced, functional but ultimately borked UI software I happen to be trying to set up at the time.

    He is right - this IS keeping Microsoft in business. Case in point - I get customers constantly asking me if there is a better alternative to Windows. There is of course, but I would NEVER recommend Linux to an end user who just needs to get on with the business of running a business simply because of the lack of intuitive UI's for Linux apps.

    There are great, shining examples - K3B, Firefox, Thunderbird, Mozilla, Openoffice, Evolution, KDE control centre etc. Let these apps serve as an example to UI designers for other projects.

    It's one thing to have all the functionality in the world, but that amounts to sweet FA in the eyes of a gumby user that would rather give money to Microsoft than learn what /etc/rc0.d is for.
  • by The Pim ( 140414 ) on Thursday February 26, 2004 @10:56PM (#8404583)
    I think there's just something about printing that turns the minds of otherwise competent developers into applesauce. Printing on unix has been a quagmire for, what, decades? And yet what is it besides 1) converting a document from a standard format to a printer-specific format, 2) sending the document to the device, and 3) (which is really gravy) getting a bit of status back. As ESR says, it's not rocket science.

    My recent experience was trying to print to an inkjet connected to a windows machine. Since it was remote, I decided I didn't need a spooler, so I didn't install cups. Instead, I found foomatic, which is supposed to cut through the many layers of drivers in one slice. Through no efforts (reading several confusing and inconsistent tutorials) could I get foomatic to produce a file in my printer's format. Nor did it give me intelligible error messages. I finally posted to the main list at (lp.general); but in the weeks I've been subscribed, I've not seen a single useful reply to anyone's question!

    Oh, I finally got the printer working. I just have to run gs -DSAFER -sDEVICE=ijs -sIjsServer=ijsgimpprint -sDeviceManufacturer=EPSON -sDeviceModel='escp2-c82' -sOutputFile=out -DNOPAUSE -- , and send the result with smbclient.

  • by darketernal ( 196596 ) <`gro.xilehelpirt' `ta' `khsoj'> on Thursday February 26, 2004 @10:58PM (#8404597) Homepage
    ... a decent try at best. At first glance it alienates me a _LOT_ less than lprng, which is fully managed with an arcane /etc file that lists configuration directives in no particular order.

    But that doesn't mean that CUPS is all peaches and roses. I had to discover what `foomatic' was in order to figure out how to extract a driver for my Epson Stylus C42UX from a large xml file. Its wizard to create the printers was rather friendly, although a belaguering dropdown box full of stuff I didn't have asked me where my printer was. Luckily it identified itself as USB PRINTER #1 (EPSON C42) so I could choose that - but most wouldn't have the slightest idea of what to choose and just stare at the screen glaze-eyed...

    Really, all I wanted to do was print a school assignment. I fully agree with esr on this issue. This whole CUPS ordeal should have taken me 10 minutes, not 10 hours (on and off) to get working. And it still doesn't fully work, for example with printing to a SAMBA host.

    But CUPS is the best we've got for Unix now. Isn't that sad?
  • by Uggy ( 99326 ) on Thursday February 26, 2004 @10:59PM (#8404606) Homepage
    It takes a real man-geek to admit "issues" when installing new software or configuring devices. He loses points for his longish rant though.

    However, I found myself nodding in affirmative at EVERY single step he took during his trouble shooting. I made a lot of the same assumptions (wrongly). The funniest was when he finally figured out he had to configure the server machine to broadcast, and then he couldn't connect to it. HAHA, it took at least 15 minutes of loud swearing for me to figure out how to configure the &*#&#((#&$&^ /etc/cups/cupsd.conf file.

    You know you're in trouble when the first like in the man page is RTFM.

    I swear, if I have to configure another CUPS network, I'll go postal. It works... ssssh, don't touch it, and speak in hushed tones when in the vicinity.
  • by querencia ( 625880 ) on Thursday February 26, 2004 @11:07PM (#8404666)
    Every good work of software starts by scratching a developer's personal itch.

    The developers of CUPS have scratched their itch. I personally have no desire to scratch Aunt Tillie's itch. She isn't paying me. Neither is Raymond.

    My printer works. If Aunt Tillie wants hers to work, she can pay me to set it up for her, or she can pay me to write software that makes it easier.

    Why the hell is it CUPS's (or anyone else's) responsiblity to do this? If IBM and Red Hat are going to profit from easy printer sharing, let them write good config utilities. The CUPS team got the reward they were after. Their printers work.

    When someone gives you a gift, try not to kick them in the nuts and ask for more. They have every right to stop giving.
  • by SJ ( 13711 ) on Thursday February 26, 2004 @11:18PM (#8404739)
    Here is my quick account of setting up a Mac (10.3.2) to print to a Brother MFC-8820D.

    I plugged one end of there ethernet cable into the printer and the other into my laptop. So far so good.

    Being a highly competent user, I then went straight to the Printer Setup Menu and click add printer. I chose IPP printing. Then I turned to the sales guy and asked for the default IP address of the printer. He didn't know. I didn't know. It wasn't in the manual either.

    I cursed. I yelled. I was annoyed. I sent two people off the go and find out the default IP of the network card.

    While sitting there quietly spouting profanity I looked in my list of currently configured printers. Well buff my nuts and serve me a milkshake! There, in the list was the Brother printer all configured and ready to go. I didn't have to do anything.

    I selected it and pressed the "Configure" button. It launched a web browser and brought up the configuration page.

    I fell off my chair.

    I later learned that the printer supports ZeroConf [] network discovery. Apple takes that further by selecting the correct driver automatically. It work just as well via USB, only if I think want to share it to other Macs I then have to follow the very complex task of clicking the "Share Printer" box in the System Prefs.
  • by Animats ( 122034 ) on Thursday February 26, 2004 @11:25PM (#8404788) Homepage
    Much to my surprise, ESR is exactly right, as others have pointed out. Here's how to fix it.

    First, if you have't read the original Macintosh user interface guide, do so. There are some strict rules, which today even Apple forgets, but which all competent programmers must know.

    One of the basic rules in that manual is this:

    • You should never have to tell the computer something it already knows.
    What this means, in terms a programmer can understand, is this:
    • If a program needs some piece of information, and there's some way the program can find it out without asking the user, the program MUST find it out by itself. Even if it's more work for the programmer. Asking the user is not an option. Period. If you don't like that, you shouldn't be programming for end users, and somebody in Bangalore will be taking your job next month. Please clean out your cubicle when you leave.
    • If a program needs some piece of information from the user which it cannot find out by itself, but which must be consistent with something the computer already knows, the system must present a set of valid options to the user. Providing a blank which the user must fill in correctly is grounds for dismissal.
    • If the system is in an inconsistent state, it must detect that it is in an inconsistent state. It's not the user's job to validate the internal consistency of the system's tables.

    From a design perspective, it's useful to divide information the system knows into "definitions", "references", and "caches". "This printer is called FOO" is a definition. "BAR normally prints on FOO" is a reference. "FOO is a PostScript printer" on BAR is a cache item. Caches must be regeneratable. References must be checkable. Definitions should be protected against inadvertent change.

    One of the big problems of the Windows registry is that it mixes all three types of information. This is also true of the contents of "/etc" in the UNIX world.

    Once you start thinking of the problem in these terms, it's much clearer what to do. For the printer case, it's obvious that the system should find the printers in the neighborhood by itself, and should probe them to find out what they are and whether they will let you use them. It's also clear that if something changes (a printer is replaced, for example), the system must notice this and do something reasonable.

    Once all the heavy machinery for that is in place, the user interface for "configuring a printer" should go away entirely. The ordinary print dialog can do the work. It might need a "search for more printers" button. But there's no real reason from a user perspective to have to configure printers at all.

    We will now hear from the "just edit the /etc/xxx file with 'vi' and send a SIGHUP signal to the daemon" people. You guys are dinosaurs. Give it up.

  • ESR is Right (Score:5, Insightful)

    by LMCBoy ( 185365 ) on Thursday February 26, 2004 @11:49PM (#8404962) Homepage Journal
    I've been using Linux as my main OS at both work and home for about 7 years.

    Here's a list of my recent hardware config experiences on my home machine, which dual-boots Gentoo and Windows XP:

    1. Canon Powershot A40 digital camera. WinXP detected and configured it in about 25 seconds. On Linux, it required two kernel recompiles, and searches through several sources of information (gphoto2 manual, message boards, Google) before I finally got the command-line interface to gphoto2 to work. Never got any GUI front-end working.

    2. Creative Webcam Pro NX. WinXP detected and configured it in about 25 seconds. Despite hours spent banging my head on the problem, it has yet to function under Linux.

    3. Nvidia GeForce4 Ti4200. WinXP detected and configured it in about 25 seconds. Linux: kernel recompile, install additional Xfree86 module, tweak, retweak, and re-retweak /etc/X11/Xf86Config. All accompanied by extremely liberal doses of docu searching online, of course.

    I love Linux like my brother, but seriously, hardware config on it is a huge PITFA, and provides the single largest contrast to the Windows world.

    I long for the day when I get a new gizmo, plug it into my box, and it "just works". Man, that would be so cool.
  • by bertok ( 226922 ) on Friday February 27, 2004 @12:53AM (#8405340)
    Despite a degree in Computer Science and a few years of experience managing networks of all descriptions, like all people, I still find myself stumped by the occasional yes/no question in a program. Some of the time, I try to read the associated help, if there is one. All too often, I find that the help is a slight variation of the following:

    "To accept this choice, click OK. To cancel, click CANCEL".

    Well fucking duh. You know what I'm talking about: For an example, enter your computer BIOS (press 'Del' on most PCs during boot), and read the "help" for any of the entries. Do you know what every single setting there means? Quickly, what's Spread Spectrum Modulation? What are its effects and side-effects? What are the potential dangers? When would you want to use it? Can you answer any of these questions by looking at a UI that is packed with acronym laden yes/no choices? Probably not. I doubt most people outside of a motherboard design company could explain in detail what every single option does.

    Users aren't all stupid, even the non-computer literate ones. It's the user interface that is at fault, for not providing all of the information required to make a decision. Given sufficient information, most people can make the right decision. Given a yes/no question full of acronyms with no other information, even programmers and computer scientists can be stumped.

    A great example of how effective providing information can be, think back to the original Norton Disk Doctor for DOS. The dialog boxes in that program usually had several paragraphs of text, and asked one question. The text usually explained:

    • What the program will do in response to every choice.
    • What the pros & cons are of every choice
    • And, if applicable, the potential risks (eg: data loss) of your choices.

    Now, I clearly remember relatively computer illiterate people running that program, and making highly technical decisions without even realizing it. My father could easily decide whether he wanted to mark a sector bad, what kind of surface scan he wanted, and how he wanted to treat corrupted files.

    While Windows is in general mediocre (not great, just mediocre) in its UI design, at times it has glaring flaws. My favourite examples are applications that ask for a DSN connection string. Do you know how to construct a DSN connection string by hand? I don't, and I've been programming with databases for years. However, the doubly stupid thing is that the ODBC control panel already includes a dialog box that automates the process! So why do some applications, including some written by Microsoft, still ask for a DSN string?

    Command-line software (open source, or otherwise) is particularly prone to exhibit this problem, often to the same extent as the BIOS example. When executed with a "-?" option (or whatever), most programs will give a list of options, but rarely tell the user anything other than the existence of the option. This is no better than a dialog box asking a yes/no question with no further explanation.

  • by XenonOfArcticus ( 53312 ) on Friday February 27, 2004 @01:16AM (#8405471) Homepage
    Ok, personal OSS rant.

    RMS says that coders should give code away. You work as a waiter, or do something else for a living. I don't want to be a waiter. I want to write code. So, "something else" has become service and support.

    Here's the rub -- when you make your pennies on service and support, you have no economic motivation to make it easy and self explanitory! You make MONEY when it's hard to use.

    This I think is the downfall of the current OSS business models, and I haven't found a way out of it. OSS projects are destined to remain difficult as long as there is no economic motivation (and we've already established that there's no artistic/ego motivation) to make it beautiful and easy.

    I'm not saying that Windows is right or that Mac drool-proof design is right, or that OSS is fundamentally wrong. But I'd like people to understand the motivations that their choices steer them to. I feel bad when I get harangued by OSS types for making non-OSS products. Just understand that not everything is as cut and dried, and that most OSS business models have yet to be proven successful.

    Let the GNU/GPL/RMS/OSS/ESR flaming begin. I'm ready for it. I've thought this out for a long time, and I make a living writing software. And no, my software is not a paradigm of simplicity, but I'm not having delusions of taking the desktop away from Bill G by conquest.
  • by jmh_az ( 666904 ) * on Friday February 27, 2004 @01:42AM (#8405623) Journal
    This line in the article, for me, is the key issue: "Where might I find some guidance on this, and why is this already taking too freaking long?"

    I'm busy. I have things to do. I don't have time to fiddle with someone else's idea of cleverness, or a badly designed interface that can't decide on how to assign command key functions consistently, or which lacks any useful help (the CUPS example is just a case in point). Nor am I interested in solving puzzles or pondering the greater mysteries of my Inner Tux. I just want to get the damn thing up and running so I can get on with what I wanted to do in the first place.

    Perhaps it's a matter of perspective: If the computer is an end unto itself, then things like usability for a wider audience aren't really relevant. But for a lot of folks, myself included, the computer is nothing more than a tool with which I hope to get some useful work accomplished. I'll use whatever works, even if it is Windows. Occasional crashes and lock-ups aside, Windows does help me get the job done and I don't have to spend half a day reading man pages and badly written "manuals" trying to figure out how to install and configure something, and that's what really counts for me.

    The bottom line is that I'll rm -rf a badly written tool's source tree just as fast as I'll pitch a cheap pair of pliers into the trashcan. They're both useless to me if they waste my time and impede my progress.

    Eric Raymond sums it up nicely with the statement that "the problem is that these simple things never occurred to developers who bring huge amounts of already-acquired knowledge to bear every time they look at their user interfaces."

    So the next time you look down your nose at some poor slob who just can't figure out how to install and configure something that you could do in your sleep, just keep in mind that there's a reason MS still rules the desktop, and it has a lot to do with millions of those poor clueless slobs.

"For a male and female to live continuously together is... biologically speaking, an extremely unnatural condition." -- Robert Briffault