[net.emacs] Pros & cons of LISP

davidson (04/27/83)

From:  Greg Davidson  <sdcsvax!davidson>

Don't be mislead by the simple but ugly syntax of LISP.  Most LISPs
have macros which allow users to specify arbitrary syntax for their
functions quite easily.  The default syntax, called Cambridge Prefix,
is used so much because it (1) is VERY easy to learn, and (2) maintains
the clear correspondence between CODE & DATA.  Let me give an example
of the latter which pertains to editors.

A frequent LISP programming technique is to have functions which write
new functions, and this is particularly valuable in programs such as
editors which need to be significantly reconfigured for each terminal.
Non-LISP based terminal-independent code spends lots of time
interpreting tables.  A LISPish way to do this is to specify terminal
functions with S-expressions (much clearer than TERMCAP entries), &
have the editor create the appropriate driver on the fly (& make it
available for compilation).

The quality of a LISP environment is heavily affected by various
details of the environment.  For example, binding strategies, which
have been discussed somewhat on this list before, are very important.
Macros are a second important characteristic.  If anyone is seriously
planning on implementing a new LISP for an editor language, send me a
note & I'll point you at some appropriate documentation.

There is one kind of language that I think is superior to LISP as the
basis for an editor, and that is an Object-oriented language, such as
Smalltalk-80 or FLAVORS.  The latter language is based on LISP, though,
so you can have the best of both worlds (though FLAVORS itself is
probably far too complicated, as is MACLISP, for such an application).

-Greg
internet: davidson@nosc
uucp: ...!sdcsvax!davidson