[net.lang.prolog] Common Lisp Motivation

Joseph.Ginder@CMU-CS-SPICE@sri-unix.UUCP (10/18/83)

Being part of the Common Lisp effort, I would like to express an
opinion about the reasons for the inclusion of so many "impurities" in
Common Lisp that differs from that expressed by Fernando Pereira in
the last Prolog Digest.  I believe the reason for including much of
what is now Common Lisp in the Common Lisp specification was an effort
to provide common solutions to common problems; this is as opposed to
making concessions to language limitations or people's (in)ability to
write smart compilers.  In particular, the reference to optimizing
"inefficient copying into efficient replacement" does not seem a
legitimate compiler optimization (in the general sense) -- this
clearly changes program semantics.  (In the absence of side effects,
this would not be a problem, but note that some side effect is
required to do IO.)  For a good statement of the goals of the Common
Lisp effort, see Guy Steele's paper in the 1982 Lisp and Functional
Programming Conference Proceedings.

Let me hasten to add that I agree with Pereira's concern that
expediency not be promoted to principle.  It is for this very reason
that language features such as flavors and the loop construct were not
included in the Common Lisp specification -- we determined not to
standardize until concensus could be reached that a feature was both
widely accepted and believed to be a fairly good solution to a common
problem.  The goal is not to stifle experimentation, but to promote
good solutions that have been found through previous experience.  In
no sense do I believe anyone regards the current Common Lisp language
as the Final Word on Lisp.

Also, I have never interpreted Moses' diamond vs. mud analogy to have 
anything to do with authoritarianism, only aesthetics.  Do others ?

-- Joe Ginder