[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Of diamonds and mud:

Let me begin by clarifying my position on one count; I stated that
LISP (at the time I had MacLISP in mind) could use some enhancement in
the workspace environment.  It is fine by me if the ideas for the
enhancement came from the CADR or InterLISP.  Being an APL hacker (as
well as a LISP hacker) I simply chose APL as my framework.  Granted,
you can do much more interesting things than are done by APL [as
pointed out by Peter Deutsch].  This only supports the argument that
there is a lot that could be done with the workspace in NIL.  I assume
that the existing facilities (CADR, InterLISP, etc.) are being
actively studied.

I stand, however, by my statement that the LISP language has the
problem of uncontrolled extensibility.  Take, for example, InterLISP
(since Peter did bring it up) -- OSHA should ban the use of InterLISP
on the grounds that one could get a hernia lifting the manual.  I
have, in my wallet, a card approx. 3 by 4 inches, which on both sides
describes the entire APL language in almost as vivid detail as the
InterLISP manual describes that language.  Again, I a} not0pushing
APL, }erely dramatizing my point.  If LISP is really, as you say, an
assembly language for a particularly interesting machine, then I
suppose that heavy duty support hacking is ok -- that is, you are
building an enviroment to run ONLY ON THAT MACHINE!!!!  Is that really
what you want to do?  Never move your work to other machines?  This is
a major distinction between assembly languages and higher level
languages... people do not worry about their krufty- ness because
they'll never see the light of transportation.  Ever tried to move an
InterLISP program (I have) -- you can basically come in with wrenches
and a truck and take the KL with it in order to preserve the
environment required to support it.  Is this really the way to design
a programming language? Maybe it is.  As another example, take Peter's
point about Masterscope -- a very good point indeed [ie, it does what
I had said LISP needed and more] but try to find that out without
having had someone tell you this!  To carry the Moses analogy a
bit...[firstly, I simply must defend APL in saying that there are a
whole lot of bright people taking the time to add only diamonds to the
APL language -- adding one speck of mud DOES mess it up]

   "APL is like a diamond -- you can add only diamonds to it or you will
    ruin its beauty.  LISP is like a ball of mud, a bit more dirt wont
    marr it any; it is a mess already."

Another hack or two into the language will not bother it or anyone.
Another hacking in InterLISP won't even make it to the surface of SRI
(or whoever) for a long time most likely.  We have the opportunity in
NIL to mold the ball of mud. I do not propose CRYSTALIZING it as
suggested by Peter.  Rather clean off some of the dirt and harden the
supporting rock foundation -- it is a very good foundation under all
that mud.

[I fully expect to get blasted over this -- blast away]