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

Re: ISO vs ANSI vs IEEE vs X3 vs The Sons of Hercules



I believe that the formation of a Scheme standardization project within
X3J13 is the worst thing that could possibly happen to Scheme.

Gabriel observes, correctly, that most people confuse Scheme with Common
Lisp and vice versa.  Placing the responsibility for Scheme with the
committee whose charter is to standardize Common Lisp could only increase
this particular confusion, while an entirely separate standardization
activity for Scheme would help to relieve the confusion.

Gabriel has suggested, correctly, that having Scheme standardization
under X3J13 would make it more convenient for technical experts from
the Common Lisp community to take part in the standardization of Scheme.
But it would also force technical experts from the Scheme community to
suffer the tedium of X3J13 meetings concerning a language that many of
them care nothing about, if they want any say in the future of Scheme.
Furthermore they would have to pay $200 annually in dues and $1000-$2000
in travel expenses for the privilege.

X3J13 is a committee formed for the purpose of standardizing Common Lisp,
not Scheme or any other dialect of Lisp.  It is a committee of institutions,
not individuals.  Though I have attended every X3J13 meeting, I will not
be eligible to vote at the next meeting in Palo Alto; Tektronix's
representative will vote, though he will be attending for the first time.
Representatives have made no bones about voting the financial interests
of their companies.  Gabriel himself has on several occasions noted that
although he personally favors certain technical positions, he would have
to vote the contrary position in order to protect his company.  (While
only a few of the companies that make up X3J13 have financial reasons
for hostility to Scheme, as few or fewer have reasons to be friendly.)

It is not surprising that X3J13 has found it difficult to make technical
progress in such a climate, so the leading technical experts have
essentially given up on all substantive changes (except possibly for
CLOS) and are concentrating their efforts on the cleanup and clarification
committee, ably led by Larry Masinter.  The definition of Scheme is
already cleaner than the definition of Common Lisp will be when X3J13
finishes with it.  What Scheme needs is some serious language design
work, which is precisely the sort of thing that X3J13 has been unable
to do for Common Lisp.

I believe the root of my disagreement with Gabriel is this:  It sounds
to me like Gabriel thinks the Scheme community should get together with
the Common Lisp community and design the next iteration of Common Lisp
(which Fahlman calls Common Lisp 2000) *rather than* going off and
designing the next iteration of Scheme.  There's nothing wrong with
working on Common Lisp 2000, but I think Scheme is more important because
Scheme still has a shot at becoming a good language and I don't think
Common Lisp does.  Why doesn't it?  Because most of the serious flaws
in Common Lisp are attempts to maintain compatibility with old-fashioned
dialects of Lisp.  If the designers of Common Lisp were unable to resist
the demands of compatibility when in truth very little Lisp code of
lasting importance had been written in all of human history, then how
do they expect to resist demands that Common Lisp 2000 be compatible
with Common Lisp?

Better to start over.  Scheme is one of the best places to start.  That's
why I want to preserve it as a distinct entity, not submit it to the
whims of X3J13.

Concerning ISO, it is certainly true that the charter for ISO Lisp would
lead it to supersede all dialects of Lisp.  Scheme will be able to escape
this only because of the fortunate historical accident that its name does
not include the word "Lisp", and because a significant number of people
(particularly Europeans) already claim that Scheme is not Lisp.  It also
is true that the Scheme community will probably have no say in the
deliberations that lead to the ISO Lisp standard, since there is no formal
standardization effort for Scheme.  Gabriel's story of how all this came to
be is accurate. He loses me, though, when he says that

    Many observers (Mathis and myself included) believe that if ANSI is
    asked to recognize Scheme as a different language from Common Lisp,
    they will not do so, but ask that X3J13 broaden its charter.

If X3J13 really wanted to be helpful, it could easily pass a resolution
requesting that ANSI recognize a separate standardization activity for
Scheme, and allow the Scheme community to be represented at the ISO level
as well.  (In my opinion, such a resolution would not be useful unless
the Scheme community had already initiated standardization through IEEE
or X3 (but not X3J13).)  In my opinion, ANSI would probably listen to
such a resolution coming from X3J13.  Even if ANSI did not, X3J13 could
refuse to act on its broadened charter, leaving the Scheme community
free to continue its informal efforts.

In fact, however, it is possible that ANSI (if we initiate standardization
through IEEE) or X3 (if through X3) would *insist* upon a separate
standardization activity for Scheme, even if X3J13 were to recommend
*against* such recognition.  It is not unusual for one language
standardization group to claim that another is redundant.  I have been
told that in the process of adjudicating such claims the standards
organizations usually get around to asking the users and implementors of
the allegedly redundant language what they think, and they occasionally
listen to the answer.  I'm not saying this is likely, but I believe there
is good reason to be optimistic so long as X3J13 is supportive or remains
neutral.

Even if all goes against us, we can continue our work by simply ignoring
the whole matter of standards (which is what we have done so far) and we
probably would not get into a situation much worse than the one the Lisp
world is already in, through no fault of ours.

Peace,
William Clinger
Semantic Microsystems, Inc.