Re: RE: [Tutor] On GUI's

Magnus Lycka magnus at
Wed Apr 21 15:11:06 EDT 2004

I assume this was for the list.

David Talaga wrote:
> I understand what you are saying but lets take a look at the regular "user".
> If we had a program like the one below and (for conversation's sake) only
> the payroll individual can work within the program, now the person that is
> in charge of inputting the information has quit.  Now we have to train some
> one else all over to do this same thing.  With a GUI it is much more   time
> and cost efficient to train and use.  The people that develop these kinds of
> things are responsible for the upkeep.  So, now all the person has to learn
> is how to type. Simple as that.

Type?! I have to type? Can't I just choose everything from a menu? ;)

It's very different to write a program for "the regular user" or to write
a program for oneself or for ones peers. I certainly think it's beneficial
for the average Python hacker to get used to efficient command line interfaces,
and the limitations of GUIs. On the other hand, I can respect if he doesn't
force this "enlightenment" on all people around him... That might be a bit
too close to the role of Don Quixote... :)

But note three things:

  - If you have made a program like the one I suggested, you can always
    wrap it in a GUI or a Web UI. If it's a well written python program, 
    you can just import it as a module from the GUI. Keeping the logic out
    of the GUI is usually a good thing. But if it's for your own use, it's
    rarely worth the effort. If the functionality is only accessible through
    the GUI, it's a dead end.

  - Windows, Icons, Menus and Pointing Devices (WIMP) might make easy things 
    easier, but they certainly make many hard things even harder. Working a 
    computer only through WIMP is a bit like trying to write messages using
    magnetic letters on a fridge door instead of learning how to use a pen 
    and paper. It's one thing that GUIs are used by people who only rarely use 
    computers, but I've seen paid (I would not say professional) programmers 
    who get all pale if you open a command line prompt on their computer and 
    try to explain how to do some trivial thing. I've seen database administrators,
    systems administrators and SCM administrators who have tried to manage the 
    system they were resonsible for completely through the GUI. The administration 
    GUIs for advanced systems like DB2, Oracle, ClearCase etc have a few things
    in common:
     - They have very limited functionality compared to the command line tools.
     - They are poorly implemented, often unstable, unreasonably resource
       hungry or hiding error messages etc in a way that makes using them
       into a confusing experience when you don't exactly follow the usage
       scenario imagined by the developer.
     - Experienced users rarely use them.
     - The reason they were written was to give the impression that this big
       and complex system isn't actually so difficult to use.
     - They actaully hinder users from learning how the system works, and how
       to make their work more effective.

  - People who only use GUIs never learn how to actually empower themselves
    by making the computer work for them in an effective way. They use the
    computer as "power steering" to make their work a little simpler, while
    they could actually make the computer do a lot of work on its own while
    they spend their time doing funnier things. 

Magnus Lycka, Thinkware AB
Alvans vag 99, SE-907 50 UMEA, SWEDEN
phone: int+46 70 582 80 65, fax: int+46 70 612 80 65  mailto:magnus at

More information about the Tutor mailing list