Cameron Laird's personal notes on GUI toolkits

I've prepared pages with information specific to several popular toolkits, including:

I began this article to update and amplify on "GUI toolkits: What are your options?". I later expanded it to comment on our series in the year 2000 of profiles of specific toolkits, including PyQt, Motif, Tk, GTK+, wxWindows, ... [more to come]

Until my next reorganization of this material, see this guide to Python bindings for a current list of interesting toolkits.

Scotty Raney of MetaCard wrote a cordial, detailed letter in which he explained

Three advantages of MetaCard you didn't mention are:
  1. "ease of learning": MetaCard is vastly easier to learn than any of the other tools (including Tcl/Tk) because it is based on a syntactically simple English-like language.
  2. MetaCard has an OO database built-in, so you don't have to store things like text strings and button highlights in separate text files like you would with the other products. This can save an enormous amount of time in the development of on-line documentation and in building data-intensive applications. You can attach arbitrary data (even associative arrays) to any object, making doing things like Perl does with dbm much easier in MetaCard.
  3. MetaCard is the only one of tools you covered that has a built-in IDE. IDEs are available for some of the other products, but you didn't include the cost of these tools for any of the other products in the "license fee" column of your "toolkit roundup" chart, rendering it an apples-to-oranges comparison.
Raney also points out that
the third paragraph in the Preface of Ousterhout's Tcl/Tk book ... states that Tk is basically a quick and dirty HyperCard clone. He acknowledges that the reason it isn't a complete application development system (it lacks an IDE) is because the original development team lacked the resources to produce something as complete as HyperCard (or MetaCard).

Thanks to Andy Tai for his reference to his GUI Toolkit Framework Page, which he mirrors at a couple of locations. Also of interest: Philippe Fremy's page on GUI toolkit comparison, with particular attention to Qt and GTK.

The article covered only the most important toolkits for Solaris developers. This meant there was no room for such interesting projects as the freeware portable C++ framework called V, FOX, fltk, or wxWindows. Also, as we thought we made clear in the article from the first sentence of the abstract on, we mentioned only those toolkits available for Solaris. In particular, there was no room for Delphi and other Win*-only products.

The article had no pictures. That's a definite defect in an explanation of GUI toolkits, and we appreciate the e-mail from readers who asked for examples and insight in that direction. We deliberately decided to limit the scope of this particular article. We look forward to writing on the visual aspect of the toolkits in the not-yet-definite future.

One anonymous reader questioned our assessment of AWT as "difficult". While I appreciate his comments, for now the best we can achieve is to agree to disagree. We still find AWT impractical for the development groups in our experience.

Thanks to Federico Mena for supplying us with a complete list of Gtk language bindings: they exist for C, C++, Objective C, Guile, Scheme, Perl, Python, Modula-3, TOM, and FORTRAN. More generally, I confess that we failed to explain Gtk properly. Most important is to emphasize its rapid growth in maturity and market position, a result of its adoption by the Linux community. This ensures the benefits of a global development team of bright, enthusiastic programmers, as is typical of open-source software.

Darren Hiebert finds Fox "clearly superior to GTK."

Benoit Goudreault-Emond briefly but accurately compares several of the leading toolkits as of late winter 2000.


Cameron Laird's personal notes on GUI toolkits/claird@phaseit.net