An anecdote on the lead-up to Common Lisp as a standard
In preparing for my The Lisp Machine and GNU talk, I've been reading The Evolution of Lisp. It's interesting.
In particular, I found this bit interesting, on the lead-up to Common Lisp. As context, today Scheme and Common Lisp are the "two big lisps" (as in, multiple implementations... though Scheme maybe has the same problems today as are joked of below), but at the time Interlisp and Maclisp were the two big lisps, but actually had tons of fractured, incompatible implementations.
2.10 Early Common Lisp
If there were no consolidation in the Lisp community at this point, Lisp might have died. ARPA was not interested in funding a variety of needlessly competing and gratuitously different Lisp projects. And there was no commercial arena--yet.
In April 1981, ARPA called a "Lisp Community Meeting", in which the implementation groups got together to discuss the future of Lisp. ARPA sponsored a lot of AI research, and their goal was to see what could be done to stem the tide of an increasingly diverse set of Lisp dialects in its research community.
The day before the ARPA meeting, part of the Interlisp community got together to discuss how to present a situation of a healthy Interlisp community on a variety of machines. The idea was to push the view of a standard language (Interlisp) and a standard environment existing on an ever-increasing number of different types of computers.
The MacLisp-descended groups came off in a way that can be best demonstrated with an anecdote. Each group stood up and presented where they were heading and why. Some questions arose about the ill-defined direction of the MacLisp community in contrast to the Interlisp community. Scott Fahlman said, "the MacLisp community is not in a state of chaos. It consists of four welldefined groups going in four well-defined directions." There was a moment's pause for the laughter to subside [Steele, 1982].
Oof! Reminds me a bit too much of trying to corrall different federation projects for federation standards...
Maybe a ray of hope though: Several people from the MacLisp side did manage to coordinate, and Common Lisp did result from it, which may be one of the most impressive language standardization efforts in history...
Another bit, revolving how to handle extensibility and standards:
One issue that came up early on is worth mentioning, because it is at the heart of one of the major attacks on Common Lisp, which was mounted during the ISO work on Lisp (see section 2.12). This is the issue of modularization, which had two aspects: (1) whether Common Lisp should be divided into a core language plus modules and (2) whether there should be a division into the so-called white, yellow, and red pages. These topics appear to have been blended in the discussion.
"White pages" refers to the manual proper, and anything that is in the white pages must be implemented somehow by a Lisp whose developers claim it is a Common Lisp. "Yellow pages" refers to implementation-independent packages that can be loaded in, for example, TRACE and scientific subroutine packages. The "red pages" were intended to describe implementation-dependent routines, such as device drivers.
Nevertheless, the first question is brought up by a direct reading of the issue: Division of Common Lisp into a core plus modules.
If this were taken to mean a proposal that would have partitioned the language into layers with a central layer and outer layers that depend on the inner ones, then Common Lisp could have been more easily subsetted, which would have led to obvious implementations on smaller machines. This would have satisfied the need to cheap, prolific implementations. This would also have made providing educational versions of the language more readily available. It also would have prevented the strong attack during the ISO meetings by Europe and by, to a lesser degree, Japan.
The response from influential members is revealing: "This seems weird. Motivate it. Maybe these modules are optional at the implementation's choice?" "Keeping things modular is a good goal, but don't expect to succeed completely." "The division only makes a little sense." [?; ?] The group focussed too much on the funny white-yellow-red distinction and not on the corelanguage/extended-language distinction. Had this gone differently, so would have the future of Common Lisp.
Note, this sounds not too unlike the decision to break r7rs into r7rs-small and r7rs-large, for anyone who knows/cares about that in Scheme-land...
Gosh, more good quotes
Carefully deferred was the decision regarding whether () was a symbol. Even though this decision was left until nearly the end of the decision process--causing people to emotionally accept Common Lisp and attach part of their egos to it--when the discussion came up, it was divisive. Symbolics threatened to withdraw from the group unless their position was accepted, and so it was. The salient paragraph from their message is as follows:
We have had some internal discussions about the T and NIL issues. If we were designing a completely new language, we would certainly rethink these, as well as the many other warts (or beauty marks) in Lisp. (We might not necessarily change them, but we would certainly rethink them.) However, the advantages to be gained by changing T and NIL now are quite small compared to the costs of conversion.
The only resolution to these issues that Symbolics can accept is to retain the status quo.
This shows that there are some issues, apparently trivial, that can have a profound influence on people.