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