Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Re: GUIs Considered Harmful by Tom Christiansen

by jplindstrom (Monsignor)
on Sep 12, 2001 at 20:05 UTC ( #111939=note: print w/replies, xml ) Need Help??

in reply to GUIs Considered Harmful by Tom Christiansen

While I agree 100% on the programming part of this article, I think it kind of misses the point when it comes to what GUIs are good for.

It has been noted that GUIs make simple things simple, and complex ones impossible. Certainly it is worthwhile to make simple things simple. But too often software is geared to only one level of expertise. That which is novice-friendly is too frequently expert-hostile, and vice versa. Being needlessly forced to click the mouse over a menu will slow down the expert user who is more comfortable with a keyboard interface.
What has mouse-only interaction got to do with a GUI? A _good_ GUI will provide as many modes of operation as possible, including keyboard where appropriate (which is many places for most applications).

E.g. a graphic-intensive program like Photoshop has a LOT of keyboard shortcuts for e.g. selecting tools in the toolbox, selecting etc, etc. You can really tell that this program has been around a long time by looking at the streamlined UI. And, it's really a shining example of TMTOWTDI once you learn the more esotheric parts :)

One of the good things about a GUI as opposed to a CLI (Command Line Interface) is that they are "explorable"(1) to a greater extent. Rarely used commands are found in menus for easy browsing, commonly used commands have shortcuts and maybe a button in the toolbar. Using the GUI to learn to use the application is a good thing because it will allow people with different skills to jump right in at a comfortable level, allowing them to grow more advanced and efficient ways to use the program over time.

People are different. Some prefer text. Some people are more visually oriented.

Programs are different. Some problems are more suitable for a visual direct-manipulation approach, while other are strictly text-oriented, which the moronic and endless point-and-click configuration of many Windows programs proves (where text files would be a so much more usable and efficient solution(2)).

Programs have different usage patterns: the program itself may be complex or "shallow", different users may use the program seldom or daily. Ignoring these usage patterns will get you a bad user interface, be it a GUI or CLI.



His entire site is very good, BTW. Other nice sites about GUI and usability design are:

(2) But like I said, more modes of operation is better. What's wrong with text files for experts and automatic processing, _and_ a GUI for seldom-users?

  • Comment on Re: GUIs Considered Harmful by Tom Christiansen

Replies are listed 'Best First'.
Re: Re: GUIs Considered Harmful by Tom Christiansen
by pmas (Hermit) on Sep 12, 2001 at 22:44 UTC
    I liked jplindstrom expresion "explorable interface".

    I read somewhere about psychologic research how users are learning and remembers new knowledge. Result was, that we have two modes of memory: "learning" and "recalling".

    When in learning mode, it's easier to work with fully described text info. Easier to use menu, and even maybe RTFM... ;-)
    In "recall" mode, when we want to find something we learned before. Any association works quicker than text. So you can recall by music, picture, position of fingers...

    I remember after couple months not able to work with computer and my favorite editor, I could not recall how to do some actions. However, when I put my fingers on the keyboard, fingers knew what to do. Same with icons - they do not make sense first, so we have ToolTips in windows (yellow bubles with help text) - but hey will appear only if you are not sure if you want to click, for a seconnd hovering mouse over the button.

    I guess this shows that GUI is not all bad. Sure I like CLI for tools, and non-mouse commands (keyborad shortcuts) for actions I use often. But I like I can explore menu I do not use quite often. If interface is complex, you may not want to expose all complexities in flat CLI. System of hierarchical menus, grouping relevant commands together, might be preferable.

    And yes, I like all my keyboard shortcuts and scripts to save clicks on GUI - but only for actions I perform qften enough.

    To make errors is human. But to make million errors per second, you need a computer.

Re: Re: GUIs Considered Harmful by Tom Christiansen
by zebedee (Pilgrim) on Sep 12, 2001 at 20:16 UTC
    Bitter experience has taught me ... keep your gui, business and data layers separate.
    Always ask - what would happen if I had to access the business logic from a command line, or programmatically (e.g. using COM)? How much would it take to use my component/black box/business logic from a web page rather than from a client-side "thick" gui or console app? What would happen if the database back-end changed from server X to server Y?
    I've written too much code when all three layers are all mixed up and it's "impossible" to move to different technologies ...

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://111939]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (3)
As of 2021-09-25 20:47 GMT
Find Nodes?
    Voting Booth?

    No recent polls found