Standard-GUI

Scope:

A widely-available graphics and interaction architecture.

Common Lisp already has a GUI standard in the shape of CLIM. Some of the vendors provide CLIM implementations originally based on a common shared (but not free) source, but seem not to really encourage its use. There is also a free mostly-complete implementation known as McCLIM


Somebody contributed this list of perceived problems with CLIM

  • It is not that easy to use. You need quite a bit of knowledge about Lisp programming.
  • It is a bit old by now. A lot of things have happened in the GUI/graphics world in between.
  • It is based on the Symbolics' 'Dynamic Windows'. This GUI is cool but not very common. A speciality is the interaction with 'Presentations' and the possible integration of a special kind of Command Line. Not many endusers are familiar with such a GUI.
  • The reference implementation is not free. Though some Lisp vendors offer their version of the source.
  • The vendors don't share patches to the reference implementation anymore.
  • The quality of the reference implementation and its various backends (Motif, Mac, Windows, Lispm, ...) was never completely satisfying.
  • It lacks documentation about its inner workings. The missing document.
  • The support for common GUI/Graphics features (Fonts, ...) and platform specific widgets is not that strong.
  • It is very Lisp specific with a small user community.

Scott McKay has said on comp.lang.lisp that one way of overcoming some of these disadvantages would be to base the next CLIM on DUIM.

The same guy contributed this list of perceived advantages of CLIM

  • Platform independent.
  • Supports several interaction styles.
  • Captures a lot of the usual User Interface Management System (UIMS) abstractions.
  • Powerful graphics model.
  • Object-oriented with lots of reuse.
  • Simple user interfaces are quick and easy to implement.
  • Powerful command line interaction model.
  • Presentation types are a nice building block for very interactive user interfaces via context sensitive input.
  • Reference implementation is written mostly in portable Common Lisp plus some backend magic.
  • Supports formatted output for lists, tables, graphs, ...
  • Supports native gadgets.
  • Some adaption to the platforms look and feel.
  • Output recording captures graphics output.
  • Incremental redisplay to minimize (re-)drawing.
  • Layout descriptions.
  • Several backends have been written over time (Lisp Machine, X11/Motif, CAPI, Windows, MacOS, Postscript and a partial backend to web pages).

Specification:

The CLIM 2.0 Specification, hosted by Mike MacDonald. Also try Google for alternate sites describing vendor versions.

The annotatable (annotable?) CLIM specification by Gilbert Baumann

Implementations

  • Ask your vendor, or
  • McCLIM, a mostly-feature-complete Free implementation.