[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GUI's for CommonLisp



>Brad Myers of CMU did a "Survey of User Interface Tools in Lisp" for the 
>1991 Lisp Users And Vendors Conference. 12 were covered, with a one
>page summary of each in standard format and then a one page flier from
>the developer. Perhaps the summaries are in electronic form somewhere.

I only have descriptions in hardcopy, but the "Frequently Asked
Questions" (FAQ) file of the comp.lang.lisp mailing list has a nice
summary which answers this question.  It is excerpted below.  

Brad A. Myers
School of Computer Science
Carnegie Mellon University
5000 Forbes Avenue
Pittsburgh, PA  15213-3890
(412) 268-5150
FAX: (412) 681-5739
bam@cs.cmu.edu

P.S. Does anyone know if there is a CLX document for X11/R5?  All I
have is the R3 version (1989) with a few patches for R4 and nothing
for R5.  Are there CLX extensions that address scalable fonts, PEX,
reading and writing PIXMAPS (instead of bitmaps), etc.?

P.P.S. Why are bug-clx and cl-windows so dead?  


----------------------------------------------------------------------
>From crabapple.srv.cs.cmu.edu!mkant Wed May 20 09:34:59 EDT 1992

Archive-name: lisp-faq/part2
Last-Modified: Tue May 12 19:44:30 1992 by Mark Kantrowitz
Version: 1.18

;;; ****************************************************************
;;; Answers to Frequently Asked Questions about Lisp ***************
;;; ****************************************************************
;;; Written by Mark Kantrowitz and Barry Margolin
;;; lisp-faq-2.text -- 52989 bytes

This post contains Part 2 of the Lisp FAQ.

If you think of questions that are appropriate for this FAQ, or would
like to improve an answer, please send email to us at lisp-faq@think.com.

Topics Covered (Part 2):

  [2-0]   What FTP resources are available?
  [2-1]   Is there a GNU-Emacs interface to Lisp?
  [2-2]   How can I use the X Window System from Lisp?
  [2-3]   When is it right to use EVAL?
  [2-4]   What is the equivalent of EXPLODE and IMPLODE in Common Lisp?
  [2-5]   Is Lisp inherently slower than more conventional languages such as C?
  [2-6]   Why does my program's behavior change each time I use it?
  [2-7]   Why does Common Lisp have "#'"?
  [2-8]   How do I call non-Lisp functions from Lisp?
  [2-9]   Can I call Lisp functions from other languages?
  [2-10]  I want to call a function in a package that might not exist at
          compile time. How do I do this?  
  [2-11]  What is CDR-coding?
  [2-12]  What is garbage collection?
  [2-13]  How do I save an executable image of my loaded Lisp system?
          How do I run a Unix command in my Lisp?
          How do I get the current directory name from within a Lisp program?
  [2-14]  I'm porting some code from a Symbolics Lisp machine to some
          other platform, and there are strange characters in the code.
          What do they mean?  
  [2-15]  History: Where did Lisp come from?

Search for [#] to get to question number # quickly.

----------------------------------------------------------------
....
----------------------------------------------------------------
[2-2] How can I use the X Window System from Lisp?

There are several GUI's and Lisp interfaces to the X Window System. Mailing
lists for these systems are listed in the answer to question [4-2].
Various vendors also offer their own interface-building packages.

   CLX provides basic Common Lisp/X functionality. It is a de facto standard
   low-level interface to X, providing equivalent functionality to XLib, but
   in Lisp. It is also a good source for comparing the foreign function calls
   in various Lisps. Does *not* depend on CLOS.  Available free as part of the
   X release in the contrib directory.  Also available form
   export.lcs.mit.edu:/contrib as the files CLX.Manual.tar.Z, CLX.R4.5.tar.Z
   and CLX.R5.tar.Z Primary Interface Author: Robert W. Scheifler
   <rws@zermatt.lcs.mit.edu> Send bug reports to bug-clx@expo.lcs.mit.edu.

   CLIM (Common Lisp Interface Manager) is a GUI originally developed by
   Symbolics and International Lisp Associates, and now under joint
   development by several Lisp vendors, including Symbolics, Apple, Franz, 
   Harlequin and Lucid. It is intended to be a portable analogue of Symbolics
   UIMS (Dynamic Windows, Presentations Types). It runs on Symbolics Lisp 
   Machines; Allegro and Lucid on several Unix platforms; Symbolics CLOE on 
   386/486 IBM PCs running Windows; and MCL on Apple Macintoshes.  It is *not*
   free, and with the exception of Macintoshes, if it is available it
   can be purchased from the vendor of the Lisp system you are using.
   For the Macintosh version write to the ILA:
        International Lisp Associates, 114 Mt. Auburn St.,
        Cambridge, MA 02138, 617-576-1151
        Contact: Dennis Doughty - Doughty@ILA.com

        International Lisp Associates, 898 Windmill Park Road,
        Mountain View, CA 94043, 1-800-477-CLIM
        Contact: Bill York - York@ILA.com

   CLUE (Common Lisp User-Interface Environment) is from TI, and extends CLX
   to provide 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).  Available free by anonymous ftp from csc.ti.com:pub/clue.tar.Z
   Written by Kerry Kimbrough. Send bug reports to clue-bugs@dsg.csc.ti.com.

   CLIO (Common Lisp Interactive Objects) is a GUI from the people who created
   CLUE. It provides a set of CLOS classes that represent the standard
   components of an object-oriented user interface -- such as text, menus,
   buttons, scroller, and dialogs.  It is included as part of the CLUE
   distribution, along with some packages that use it, both sample and real.

   Allegro Common Windows provides a front end to CLX. Uses CLOS.
   It is *not* free. Contact info@franz.com for more information.

   The LispWorks Toolkit is an extensible CLOS-based widget set that uses
   CLX and CLUE. The LispWorks programming environment has been written
   using the toolkit and includes: an Emacs-like editor, listener,
   debugger, profiler, and operating system shell; browsers/graphers for
   classes, generic functions, processes, windows, files, compilation
   errors, source code systems, and setting LispWorks parameters; and an
   interactive interface builder and complete online hypertext
   documentation. Contact: lispworks-request@harlqn.co.uk

   CLM (Common Lisp Motif) and GINA (Generic Interactive Application) and IB
   (Interface Builder). CLM runs Motif widgets in a separate C process, with
   minimal work on the Lisp side and communicates between C and Lisp using TCP
   sockets. Runs in Allegro CL, Sun CL, and Symbolics Genera. GINA uses CLOS.
   Available free in the X contrib directory or by anonymous ftp from either
   export.lcs.mit.edu:/contrib or ftp.gmd.de:/gmd/gina [129.26.8.90] as the
   files CLM+GINA.README, CLM2.1.tar.Z and GINA2.1.tar.Z.  CLM was written by
   Andreas Baecker <baecker@gmdzi.gmd.de>, GINA by Mike Spenke
   <spenke@gmdzi.gmd.de>, and IB by Thomas Berlage <berlage@gmdzi.gmd.de>.
   Contact Mike Spenke for more info. 

   EW (Express Windows) is intended to mimic Symbolics' Dynamic Windows user
   and programmer interfaces. It is available free in the ew/ subdirectory of
   the Lisp Utilities repository.  It is no longer under active development.
   Runs on Sun/Lucid, Franz Allegro, and Symbolics. Should port easily to
   other Lisps with CLX. 
   Written by Andrew L. Ressler <aressler@oiscola.columbia.ncr.com>.

   Garnet is a large and flexible GUI. Lots of high-level features.  Does
   *not* depend on CLOS, but does depend on CLX. Garnet (version 2.0 and
   after) is now in the public domain, and has no licensing restrictions,
   so it is available to all foreign sites and for commercial uses.
   Detailed instructions for obtaining it by anonymous ftp are available
   by anonymous ftp from a.gp.cs.cmu.edu [128.2.242.7] as the file
   /usr/garnet/garnet/README.  Garnet includes the Lapidiary interactive
   design tool, Gilt Interface Builder, automatic display management, two
   widget sets (Motif look-and-feel and Garnet look-and-feel), support for
   gesture recognition, and automatic constraint maintenance, application
   data layout and PostScript generation. Runs in virtually any Common
   Lisp environment, including Allegro, Lucid, CMU, and Harlequin Common
   Lisps on Sun, DEC, HP, Apollo, IBM 6000, and many other machines.
   Garnet helps implement highly-interactive, graphical, direct
   manipulation programs for X/11 in Common Lisp.  Typical applications
   include: drawing programs similar to Macintosh MacDraw, user interfaces
   for expert systems and other AI applications, box and arrow diagram
   editors, graphical programming languages, game user interfaces,
   simulation and process monitoring programs, user interface construction
   tools, CAD/CAM programs, etc. Contact Brad Myers (bam@a.gp.cs.cmu.edu)
   for more information. Bug reports and administrative questions:
   garnet@cs.cmu.edu.

   LispView is a GUI written at Sun that does not use CLX.  Instead it
   converts Xlib.h directly into Lucid foreign function calls. It is intended
   to be fast and tight. Uses CLOS.  Available for anonymous ftp from
      export.lcs.mit.edu:contrib/lispview1.1 and 
      xview.ucdavis.edu:pub/XView/LispView1.1 
   Written by Hans Muller (hmuller@sun.com). Runs in Sun CL and Lucid CL.
   Direct questions about the source provision to lispview@Eng.Sun.Com.
   
   WINTERP (Widget INTERPreter) was developed at HP and uses the Xtoolkit and
   Motif widget set. It is based on David Betz's XLISP interpreter, which is a
   small subset of Common Lisp that runs on IBM PCs. Runs on DecStation 3100,
   HP9000s, Sun3, Sparcs.  It is a free-standing Lisp-based tool for setting
   up window applications. Available free in X contrib directory, or by
   anonymous ftp from export.lcs.mit.edu:contrib/winterp-???.tar.Z where ???
   is the version number.  If you do not have Internet access you may request
   the source code to be mailed to you by sending a message to
   winterp-source%hplnpm@hplabs.hp.com or hplabs!hplnpm!winterp-source.
   Contact Niels Mayer mayer@hplabs.hp.com for more information.  

   YYonX is a port of the YY system to X windows. Runs in Lucid CL, Allegro
   CL, and Symbolics Genera. Supports kanjii.  Developed at Aoyama Gakuin
   University. Available free by anonymous ftp from ftp.csrl.aoyama.ac.jp:YY/
   Written by Masayuki Ida <ida@cc.aoyama.ac.jp>

   Picasso is a CLOS based GUI, and is available from
   postgres.berkeley.edu:/pub/Picasso-2.0 It runs on DecStation 3100s, Sun3
   (SunOs), Sun4 (Sparc), and Sequent Symmetry in Allegro CL. The file
   pub/xcl.tar.Z contains X-Common Lisp interface routines. Send mail to
   picasso@postgres.berkeley.edu for more information.