Just as C provides UNIX with a common language for implementing applications, the X Window system provides it with a common set of tools for handling mice and screens. The packages described in this month's column are built on X for the same reason that dozens of language processors are written in C. C and X are adequate, ubiquitous, and if need be, free.

Following the analogy a bit further, these Graphical User Interface Development Environments (GUIDEs) also hide existing technology under new, and presumably improved, sets of interfaces. Having used C for the analogy, I should note that only one of the packages described in this column is based even partially on C. On the other hand, all of the packages can be layered on top of freeware language processors based on C.

Finally, a word of warning. These are large packages, requiring study, practice, and substantial amounts of computer resources. Don't expect to make them work for you in an evening, and have a substantial amount of free disk space available for unpacking and building before you begin. A reasonable rule of thumb is that you will need at least ten MB of disk space to unpack and build one MB of compressed sources.

Garnet

Garnet (ftp://a.gp.cs.cmu.edu/usr/garnet/garnet/) isn't all that large: 3.2 MB, including 1.3 MB for documentation. It is written in Common Lisp, however, and you will need a suitable environment to run it. I suggest CMU Common Lisp (ftp://lisp-rt1.slisp.cs.cmu.edu/) which was developed, like Garnet, at Carnegie-Mellon University. The compressed archives for CMU Common Lisp take up about 18 MB. Make sure you have a fair amount of RAM on your target machine; Lisp eats up kilobytes like popcorn, and thrashes virtual memory systems without raising a sweat.

Having said all that, Garnet appears to be a nifty and well-developed system. The documentation is clean, readable, and quite substantial (about 700 pages). Don Hopkins, responsible a large amount of interesting NeWS freeware, is now working on the project, and seems quite enthused about it. He says that Common Lisp is really neat, and that folks should give it a try. Here are some official words on the package:

InterViews

InterViews (ftp://interviews.stanford.edu/pub/) is another biggie. The distribution contains 3.8 MB of sources, 28.4 MB of contributed code, and 3.6 MB of papers. You will also need a C++ environment. The GNU C/C++ suite (see last month's column) can be found in ftp://prep.ai.mit.edu/pub/gnu/ and takes up about 16 MB.

InterViews is a joint effort of Silicon Graphics and Stanford University. It provides lightweight, shareable objects; sophisticated layout objects; resolution-independent graphics, printing, and overlays; incremental update and double-buffering; and a graphical editing framework. Current applications include a drawing editor, a WYSIWYG document editor, and an interface builder. Here are some more quasi-official words:

Serpent

Finally, a package written in C! Well, it also includes code written in two other built-in languages (Saddle and Slang), but let's ignore that for the moment. The Serpent distribution can be found (along with a great deal of other contributed X software) in ftp://ftp.x.org/R5contrib/serpent/. The distribution is actually pretty small, at 3.6 MB, and the use of C means that no other language environment needs to be built.

Serpent consists of several interdependent components: a interface specification language (Slang), an application interfacing language (Saddle), a transaction processing library, an interactive display and dialogue editor, and input/output toolkits.

By separating the application code from the user interface, the authors of Serpent hope to create a more flexible, robust, and maintainable system than would otherwise be possible. In addition, the division encourages the development of powerful, application-independent interface management tools. Here's the official description: