Path: utzoo!mnetor!uunet!husc6!mit-eddie!uw-beaver!cornell!rochester!PT.CS.CMU.EDU!SPICE.CS.CMU.EDU!skef
From: skef@SPICE.CS.CMU.EDU (Skef Wholey)
Newsgroups: comp.lang.lisp
Subject: Re: FORTRAN,ADA
Message-ID: <525@PT.CS.CMU.EDU>
Date: 16 Dec 87 00:11:50 GMT
References: <4732@well.UUCP>
Sender: netnews@PT.CS.CMU.EDU
Organization: Carnegie-Mellon University, CS/RI
Lines: 77

Well, I see it's time for JJJJacob's semi-annual Common Lisp flame.  Rob
did a good job with this guy last time, but is sitting this round out.
I'll take a turn at it, not because I believe that a person this far
gone can be straightened out, or because I'm afraid his ignorance is
contagious, but because I'm collecting some memory-usage statistics on
this Lisp-based text editor I'm using, and I need the keystrokes...

>In <4732@well.UUCP>, jjacobs@well.UUCP (Jeffrey Jacobs) writes:
>I have to disagree; Common LISP is the PL/I of Lisps.  Too big and
>too incomprehensible, with no examiniation of the real world of
>software engineering.

Incomprehensibility, like boredom, usually springs from a deficiency in
the beholder rather than the beheld.

>It should
>be embarassing to everybody in the field that most shells and tools are
>no longer written in LISP.

I assume that by "the field" he means AI, and that by "shells" he means
expert system shells and the like.  The reason a lot of applied AI and
expert systems work is being done in other languages has little to do
with Common Lisp.  The development of Common Lisp was coincident with a
lot of work that pinned down just how one should go about implementing
rule-based systems, effectively removing such systems from the arena of
exploratory programming.

Exploratory programming is what Lisp is all about -- it also happens to
be what a lot of AI is about: that's why they've existed side by side
for so long.  But neither has any hard ties to the other.  You can do AI
in C, and you can write window systems in Lisp.  When the cost of such
things as software maintenance and delivery vehicles for "AI" systems is
important, C can often beat Lisp hands down.  Any Lisp.  There are far
more C hackers and C compilers out there than there are Lispers and
Lisps, and I doubt that this will ever change.  However, the latter
numbers have grown by leaps and bounds since the introduction of Common
Lisp.

>To quote Dick Gabriel, the "father of Common LISP":

Funny that he goes on to quote a man who is profiting from the
commercial viability that, earlier, he asserts doesn't exist.  Also,
Gabriel is "a father" of CL, not "the father."  Every one of the five
principal designers will tell you he could have designed a better
language by himself, or with one or two of the others, and many were
trying to do just that when the standards effort began.  If all had
proceeded undisturbed, there might be several beautiful Lisps by now,
but they would be largely incompatible, and each would run only on one
or a few machines.  Probably none would be supported by any large
computer manufacturers.

Common Lisp is not perfect.  The problem with perfection is that
different people have different ideas of what it is.  When you put a
group of smart, experienced people together and tell them to create
something, you'll usually end up with a compromise.  If you're lucky
(and I believe in the case of Common Lisp we were lucky), that
compromise will not be so bad.

I imagine that JJacobs wasn't around when the initial design of Common
Lisp was going on over the ARPAnet, and I'm sure he wasn't at either of
the two face-to-face meetings.  I'll bet that he hasn't even read any of
the old Common Lisp mailing list archives, in which much of the
rationale for various design points of Common Lisp can be found.  Sorry,
JJacobs, but you're just not very well informed.

>ADA, despite it's problems, is o well thought out, engineered language.
>Any comparision with CL is odious; but comparing CL to PL/I, that incredibly
>ancient monster, is perfect...

When one stretches a metaphor hard it often becomes limp and useless
(that's a meta-metaphor!).  The more one tries to draw from these
comparisons the less meaningful they become.  I suppose I could say,
"Jeffrey M. Jacobs is the punched card of the comp.lang.lisp community,"
but I would risk the possibility that someone might find something nice
to say about punched cards.

 -- Skef Wholey (Wholey@C.CS.CMU.EDU)