[comp.lang.clos] CLOS-based UI toolkits?

mkant@a.gp.cs.cmu.edu (Mark Kantrowitz) (11/23/90)

Hope this file answers your question. Please send errors, additions,
etc. to mkant+@cs.cmu.edu

;;; Sun Nov 18 13:39:30 1990 by Mark Kantrowitz <mkant@GLINDA.OZ.CS.CMU.EDU>
;;; cl-x-lisp-interfaces.text
;;; ****************************************************************
;;; Common Lisp/X Interfaces ***************************************
;;; ****************************************************************
This file summarizes a variety of X/lisp toolkits. Most of them are
free and publicly ftp'able. This list was originally posted on
cl-windows by Steve Strassmann <straz@media-lab.media.mit.edu> (20 Jul 90).
I've since added comments and additional information. (much of the
latter came from posts by Greg Sandell <sandell@ferret.ils.nwu.edu>,
and Barry Margolin <barmar@think.com>).

------------------------------------------------------------------------------

These are my notes on the various X/lisp toolkits. Any opinions
expressed (especially the "rating") are purely my own, and in no way
should be taken as gospel.  Some of this info is out of date, so
please double-check the facts before counting on them. As far as I can
tell, all of these are intended to run under most unix implementations
of Common Lisp.

There is a general mailing list, cl-windows@sail.stanford.edu, for
discussing window toolkits for commonlisp.

;;; ********************************
;;; CLX ****************************
;;; ********************************
CLX provides basic Common Lisp/X functionality. It has quickly become
the de facto standard interface with XLib. Of course, it is probably
too low-level for easy creation of user interfaces (i.e., most C
programmers use toolkits built on top of XLib). For things like menus
and other high-level constructs, you probably want one of the toolkits
described below, which are built on top of CLX. CLX provides its own
set of data structures that parallel the C structures. 
	From TI and MIT.
	Uses: 	structures (does *not* use CLOS)
        Available: free, part of standard X release, in contrib dir.
	Current versions of CLX may be obtained by ftp to csc.ti.com
 	(128.247.159.141), grabbing the files pub/clx.tar or
 	pub/clx/tar.Z (the latter being compressed). 
	Documentation is in pub/clxman/doc.tar.Z (ascii) or
	pub/clxman/ps.tar.Z (postscript). Updated versions may also be
	available from expo.lcs.mit.edu (18.30.0.212).(?) in /contrib.
 	Bug reports: bug-clx@expo.lcs.mit.edu
 	Latest version: 4.3
 	Rating: Stable, seems mature, low-level

;;; ********************************
;;; CLIM ***************************
;;; ********************************
Common Lisp Interface Manager, developed by International Lisp Associates.
Previously known as Y windows.	  

Implements a portable user interface management system that can be run
over any window system. They're currently working with people at Xerox
who're developing an object-oriented scheme for generic interfacing to
different window systems to reimplement CLIM using that underlying
facility.

Xerox, Lucid and Symbolics are working with ILA to develop CLIM as a
standard for object-oriented I/O routines in Lisp.  It will offer a
hardware and software independent high level UIMS which can run on top
of any (of the supported) X-window implementations.  The target
operating and window systems are: Genera, Open Look, MS Windows,
Presentation Manager, and SUN's implementation of X. They may also be
doing a Macintosh implementation.

It uses CLOS functions to talk to the X-window and other window
substrates directly. It is fairly high level, and includes a
constraint language. It is intended to be a portable analogue of
Symbolics UIMS (Dynamic Windows, Presentations Types).


 	Contact: ILA, 617-576-1151, Cambridge, MA.
                   or doughty@fuji.ila.dialnet.symbolics.com
 	Rating: language seems stable and well-designed, but
 	I haven't gotten a beta copy yet.
 	Users Group: clim@bbn.com, clim-request@bbn.com

;;; ********************************
;;; CLUE ***************************
;;; ********************************
Common Lisp User-Interface Environment. From TI, extends CLX. 

A simple, object-oriented toolkit (like Xt) library that uses CLOS.
Provides basic window classes, some stream I/O facilities, and a few
other utilities. Still pretty low level (it's a toolkit, not widget
library).

	Documentation: just a specification/reference manual
 	Uses: CLX and PCL (CLOS)
 	Available: free, runs on X11
 	Anonymous ftp from CSC.TI.COM, (10.7.0.46) in pub/clue.tar.Z. 
 	Bug Reports: clue-bugs@dsg.csc.ti.com
 	Users Group: clue-review@dsg.csc.ti.com
 	Requests: clue-review-request@dsg.csc.ti.com
 	Author: Kerry Kimbrough <Kimbrough@dsg.csc.ti.com>
 	Latest version: 7.1
 	Rating: Seems to be popular

;;; ********************************
;;; Common Windows *****************
;;; ********************************
Allegro's Common Windows

Provides a front end to CLX, and seems to be a powerful tool. Feels
like the Interlisp-D windowing functions.  Uses CLOS, but isn't fully
integrated yet. This product is in pilot release. Available with it is
a package called Composer, a window-level debugger/profiler, but it's
"slow as molasses, even on a sparcstation," someone said.  It is
unclear whether it only runs on Allegro, or is portable.  (There have
been reports of its crashing with TWM. There shouldn't be any problems
with TWM version 5.31 4/26/89 and ACW version 3.0.1 and later.)

;;; ********************************
;;; CLM/GINA ***********************
;;; ********************************
CLM uses CLX and Motif; 
Gina (Generic Interactive Application) is built over CLM and CLOS.
IB (Interface Builder) requires Gina.

Runs all Motif widgets in a separate C process, with minimal work on
the lisp side. Communicates between C and Lisp using TCP sockets.

Runs in Allegro Common Lisp 3.1, Sun Common Lisp 4.0 + CLX X11R3 or a
Symbolics Lispm with Genera.

 	Available: free, part of standard X release, in contrib dir.
 	Contact: Andreas Baecker (gmdzi!baecker@uunet.uu.net)
 	GMD (Gesellschaft fuer Mathemathik und Datenverarbeitung mbH)
 	(The German National Research Center for Computer Science)
 	Schloss Birlinghoven, D-5205 Sankt Augustin 1, West Germany
	Also available via anonymous ftp from ~ftp/contrib on
	expo.lcs.mit.edu (18.30.0.212), files Clm.README.Z and
	Clm.tar.Z (~500k). (expo server unaccessible 9am-6pm).
	Author:
 	Andreas Baecker 
 	GMD (German National Research Center for Computer Science)
 	P.O. Box 1240
 	D-5205 Sankt Augustin 1
 	Federal Republic of Germany 
 	e-mail: baecker@gmdzi
 	Phone: (022 41) 14 20 78
 	Latest version: 1.0.0 (CLM), Alpha (GINA)
 	Rating: seems to be the fastest and most efficient, but
 	inflexible (requires writing/using only motif widgets in C)
  
;;; ********************************
;;; Express Windows (EW) ***********
;;; ********************************
Express Windows (EW).

Intended to mimic Symbolics' Dynamic Windows user and programmer
interfaces in Common Lisp using CLX.  Runs as client to X11 servers.

	Common Lisp Ports (known): Sun/Lucid, Franz's Allegro, and Symbolics
 	Should port to other CLs with CLX.
 	Requires: CLX (X11R3/4), TCP/IP (Symbolics)
 	Optional System(s) Used: CLOS (PCL)
 	Author: Andrew L. Ressler <aressler@oiscola.columbia.ncr.com>
                Liszt Programming, Inc., PO Box 15447, Arlington VA. 22215
                (301) 643-4526.
 	Users Group: express-windows@atc.boeing.com
 	Contact: express-windows-request@atc.boeing.com

;;; ********************************
;;; Garnet *************************
;;; ********************************
Garnet.

Large system providing rapid and flexible design of UI. Includes
constraints, object-oriented, doesn't use PCL.  Developed at CMU,
depends on CLX, runs on X11. Possibly will be ported to Mac?

	Available: free, ftp after signing copyright agreement
 	Contact: Brad Myers (bam@a.gp.cs.cmu.edu)
 	Users Group: garnet-users@cs.cmu.edu
 	Bug Reports: garnet@cs.cmu.edu
 	Rating: lots of high-level features

;;; ********************************
;;; SOLO ***************************
;;; ********************************
SOLO

Not generally available yet. Written at Sun.  Doesn't use CLX,
directly converts Xlib.h into lucid foreign calls. Intended to be
small, fast, tight. Uses CLOS.

          Contact: rmori@Eng.Sun.COM (Robert Mori)
          Written by: Hans Muller (hmuller@sun.com)

;;; ********************************
;;; WINTERP ************************
;;; ********************************
WINTERP   Widget Interpreter

Developed at HP, uses the Xtoolkit + Motif widget set, runs on X11

It is a rapid prototyping, development, and delivery environment for
applications using the OSF Motif user interface toolkit. WINTERP is based
on David Betz's XLISP interpreter (comp.lang.lisp.x), which is a small
subset of Common Lisp that runs on PC's.

WINTERP makes extensive use of XLISP's Smalltalk-like extensions for
object oriented programming: All the Motif widget classes are actually
implemented as XLISP classes, Xtoolkit functions become methods on the
widget base class.  Motif "Convenience Functions" become methods on
particular classes.  Because Motif Classes look like normal XLISP
classes inside WINTERP, you may extend the functionality of existing
widget classes in Lisp via subclassing, or by adding new methods to
existing widget classes.

WINTERP should be portable to any unix system that can run Xwindows
(with OSF Motif widgets) and TCP Sockets. WINTERP has been tested on
HP9000s3xx (68030), HP9000s8xx (HP PA-RISC), and Sun 3's.

 	Runs partly in separate XLisp process (a public domain Lisp)
 	Available: free, part of standard X release, in contrib dir.
 	Via anonymous ftp from expo.lcs.mit.edu:contrib/winterp.tar.Z
	Documentation: XLISP --  doc/xlisp.doc, doc/INFO2.0,
			         doc/INFO2.1, doc/README.XLISP 
	             WINTERP --  doc/winterp.doc.raw
 	Contact: Niels Mayer  mayer@hplabs.hp.com, HP, Palo Alto,CA.
 	Users Group: winterp@hplnpm.hpl.hp.com

;;; ********************************
;;; YYonX **************************
;;; ********************************
YYonX     Port of the YY system to X windows,
YY is a network oriented window toolkit for Common Lisp. Server-client
model. CLOS oriented portable tool kit.

Developed at Aoyama Gakuin University, runs on X11, Symbolics Genera,
Lucid CL, and Allegro CL. Supports kanji. Tested mainly on Sun4
SunOS4.1 and X11R4. 

	Available: free, 
 	Anonymous FTP from ftp.csrl.aoyama.ac.jp (133.2.1.5), cd YY
 	Users Group: yyonx@csrl.aoyama.ac.jp
 	Contact: yyonx-request@csrl.aoyama.ac.jp for requests
 	Author: Masayuki Ida, ida@cc.aoyama.ac.jp
 	Computer Science Research Lab, Aoyama Gakuin University
 	Latest version: 1.2 (11/5/1990)
	Sources are copyrighted, but may be freely used if acknowledged.
	Documentation is in the public domain.

YY and CLIM are talking about a unified external specification.

;;; ********************************
;;; Miscellaneous ******************
;;; ********************************

Harlequin's LispWorks uses CLX as a low-level interface to X, but uses
CLUE as a higher-level toolkit for building human interfaces.  A free
evaluation copy of LispWorks is available by writing to
lispworks-request@harlequin.co.uk.

LeLisp has both C and X interfaces.

Obvius (Object oriented image understanding system) is a software
project	at MIT to create a general purpose image processing utility in
Lisp.  It uses a homebrew interface to X11 (i.e., it does not use clx
or clue).  However, they eventually hope to port Obvius to a clx/clue
platform.  Contact bradley@demille.media.mit.edu for information.

Picasso (graphic user interface, uses Franz Allegro CL) is available
from postgres.berkeley.edu (128.32.149.1).

egdorf@zaphod.lanl.gov (Skip Egdorf) (11/25/90)

In article <11174@pt.cs.cmu.edu> mkant@a.gp.cs.cmu.edu (Mark Kantrowitz) writes:

>   ;;; ********************************
>   ;;; SOLO ***************************
>   ;;; ********************************
>   SOLO
>
>   Not generally available yet. Written at Sun.  Doesn't use CLX,
>   directly converts Xlib.h into lucid foreign calls. Intended to be
>   small, fast, tight. Uses CLOS.
>
>	     Contact: rmori@Eng.Sun.COM (Robert Mori)
>	     Written by: Hans Muller (hmuller@sun.com)

Sun Common Lisp 4.0 (Lucid 4.0 + Sun stuff) Includes the distribution version
SOLO now called LispView. It is basically an interface to the C Xview library
with a CLOS wrapper on top. Looks like a nice system!

Now that Xview and OpenWindows have both been let out in source form to the
world in general, how soon 'til we see the LispView source? Sun?? Listening???

						Skip Egdorf
						hwe@lanl.gov

snicoud@ATC.BOEING.COM (Stephen L Nicoud) (11/30/90)

    Date: 22 Nov 90 22:20:12 GMT
    From: mkant@a.gp.cs.cmu.edu (Mark Kantrowitz)

    Hope this file answers your question. Please send errors, additions,
    etc. to mkant+@cs.cmu.edu

	[...]

    There is a general mailing list, cl-windows@sail.stanford.edu, for
    discussing window toolkits for commonlisp.

It's now cl-windows@mcc.com.

	[...]

    ;;; ********************************
    ;;; Express Windows (EW) ***********
    ;;; ********************************
    Express Windows (EW).

    Intended to mimic Symbolics' Dynamic Windows user and programmer
    interfaces in Common Lisp using CLX.  Runs as client to X11 servers.

	    Common Lisp Ports (known): Sun/Lucid, Franz's Allegro, and Symbolics
	    Should port to other CLs with CLX.
	    Requires: CLX (X11R3/4), TCP/IP (Symbolics)
	    Optional System(s) Used: CLOS (PCL)
	    Author: Andrew L. Ressler <aressler@oiscola.columbia.ncr.com>
		    Liszt Programming, Inc., PO Box 15447, Arlington VA. 22215
		    (301) 643-4526.
	    Users Group: express-windows@atc.boeing.com
	    Contact: express-windows-request@atc.boeing.com

Available: free, anonymous ftp from atc.boeing.com:/pub/ew/

Stephen
--
Stephen L. Nicoud  <snicoud@atc.boeing.com>  uw-beaver!bcsaic!snicoud
Boeing Advanced Technology Center for Computer Sciences