What it's like using a Lisp Machine [Re: Why LispOS?]

Simon Leinen simon@limmat.switch.ch
26 Mar 1998 12:44:41 +0100

At the lab where I worked we had a few Symbolics Lisp Machines and a
few Unix workstations running Allegro.  I always used the Unix boxes
for "productive" work, probably because I never learned to use the
LM's right.

However, the Lisp machines were absolutely great for system
programming, in particular experimenting with the networking code.
For example, the system comes with complete source of its TCP/IP
stack.  If you want to add a feature (let's say Selective
ACKnowledgement handling in TCP), you can usually do so by defining a
new subclass (-flavor) of an existing system class, or by redefining a
few functions/methods.

The new behavior is activated as soon as you type the closing
parenthesis (you don't have to type Enter :-).  This is where I really
saw the benefits of a radically shortened debugging cycle.  Under
other OSes, even if you have some kind of dynamic loading that makes
it unnecessary to rebuild a kernel every time, it is usually
impossible to modify the behavior of the *running* system.

Of course you can shoot yourself in the foot when you do this on the
LM, but the relatively well-defined semantics of class, method and
function redefinition make those things feasible in many cases.

For strict user-level programming, I found that a system such as
Allegro Common Lisp suits me fine.  It has good Emacs integration and
an excellent debugger which supports "fix-and-continue" quite well
(something which e.g. CMU CL isn't as good at).