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

Re: Everybody and his brother is a language designer.



No language will ever be perfect.

There have been several major improvements to MacLisp
and its cousins in the last several years.  Most of these
improvements can be traced back to certain central
insights about Lisp that started happening about ten 
years ago.

Sometimes, very young languages go through such changes.
Usually there is so little extant code in these languages,
all of it of an experimental nature, that programmers
are willing and eager to have the experience of rewriting
their old code in the new way.

When such changes happen to older languages with a
significant body of nontrivial code already written, the
result is usually a new dialect with no contract for
upward compatibility.  

But the incorporation of advanced macro/structure features
into Maclisp happened in the full light of day where everybody
could see it.  Further, by luck it happened that these
changes were fully upward-compatible.  This led the Maclisp
user community to believe that making radical changes to
an established language was the Thing To Do.

Confusion about the relationships between Maclisp, Lisp Machine
Lisp, and NIL, have added to the tower of babble that has
resulted.  In particular, the Lisp Machine design group
has never acknowledged any contracts of compatibility with 
Maclisp, beyond a commitment to maintaining some basic
commonality of structure with a subset of Maclisp as it was a few
years ago.

Neither Maclisp nor Lisp Machine Lisp are in the frenetic
early development stage which recent messages to this mailing
list would characterize.  Both are established languages with 
large (and SEPARATE) bodies of stable, working, extant code.
Major changes (such as changes in the nature of LAMBDA-expressions)
should take place only after careful, sober, and SLOW
consideration by people who intimately understand the 
structure of the language in question.  We should expect
(and hope) that such changes will take place rarely and
gently.

Both languages are already rich enough to write any code
your little heart desires.  There are NO proposed changes
for which there is anything approaching urgent need.

You can indeed participate in the (slow, careful, but continuing)
language design process.  But a little more respect for
A) the stability, power, and grace of the existing languages,
and B) the ability and perceptiveness of the implementors
and maintainers might be in order.  

As the flaming on this mailing list (yes, by sending this, I
know I incriminate myself) has escalated to the point where
simply reading it involves a major time commitment, these
implementors and maintainers have started to lose interest
in participating in the forum.  Some consider such 
participation to be a waste of time.  DLW could have repeated 
his arguments against "destructuring LAMBDA", but presumably
decided that it wouldn't be worthwhile.  

Not everyone is a language designer.  Most have simply not
thought deeply about the issues pertaining thereto.

But some people have.  Try to remember that.