Creating Good GUIs

With all the talk about revitalizing Tk, I started thinking about the problem from another angle - that of the Tcl community. While Tk has become very popular and widely used, maybe there hasn't been enough emphasis on how to use it well?

For instance, I don't recall reading anything about GUI design in Brent Welch's otherwise excellent book. While it's clearly out of the scope of his work, a few pointers and suggestions to go along with all of the powerful Tk tools he shows to the world would be welcome.

I think creating more "cultural awareness" of good design would be a good first step, possibly including some critiques and suggestions?

References:

Who do Gnome think they are to teach anyone how to make good GUIs? They use fonts so small that got me squinting all the time in all Gnome applications in three different distros, made me hate their whole environment practically forever and I still haven't been able to make those fonts look decently visible to the human eye. The Gnome "Control Panel" allows very little control of the fonts. I find that panel all quite pitiful, actually.

I don't find what you say to be true in my case, but the point is not whether Gnome is a good gui or not at the moment. The point is that they are attempting to be systematic in their approach to it - defining what a good gui is and giving some guidelines about how to go about making one. With that approach, they will improve. The advice on that page doesn't seem so bad to me in any case. Maybe Microsoft, Apple, KDE or someone else has something better that could be listed as well?

Incidentally, I have a lot to learn on this subject myself, and would love it if someone gave me some thoughtful input on my own GUI apps - davidw.


Here are some of my standard references for GUI Development -

  • The Humane Interface (Raskin)
  • About Face (mentioned above, Cooper)
  • Designing Web Usability (Nielsen)
  • The Windows Interface Guidelines for Software Design (Microsoft Press)
  • Macintosh Human Interface Guidelines (Apple Computer) (See above)
  • User Centered System Design (Edited By Norman, Draper)
  • The Psychology (or Design) of Everyday Things (Norman) [L2 ] [L3 ]

Many of these books are quite old, but, to paraphrase Nielsen, people don't change as quickly as technology. User Centered System Design for example, is from 1986, but it's still an essential reference. To some extent, this is a testament to the rather stagnant state of desktop User Interface development, which seems nowadays to be occupied more by graphic designers than people with a background in human factors and cognitive psychology.

I also use the ACM Digital Library a great deal. - WJR


Available over the web are the "Java Look and Feel Design Guidelines" [L4 ], but I don't know how relevant they are.


I'm surprised no one has mentioned:

"Effective ..." is an excellent book that demonstrates how to apply the Tcl/Tk philosophy to creating GUIs. And not just well-designed GUIs but GUIs that are also easy to MAINTAIN and UPGRADE, topics woefully lacking in other books. And unlike other books that just cover subjects keyword by keyword, "Effective ..." shows you how to build GUIs in natural and synergist ways that you can immediately put to use.

It's too much for beginners but intermediate and advanced Tk programmers should definitely read this book. I can't do justice to it in a simple paragraph but reading "Effective ..." is like listening to a great artist break down beautiful art into a way that makes a very difficult subject into one that's easy to understand. - DL


I find bad examples to be just as educational as any design guidlines. I recommend reading "GUI Bloopers"[L5 ] by Jeff Johnson. Brian Griffin