Subject: Re: Why is Scheme not a Lisp? From: Erik Naggum <erik@naggum.net> Date: Tue, 12 Mar 2002 23:20:41 GMT Newsgroups: comp.lang.lisp Message-ID: <3224964049435643@naggum.net> * Erann Gat | I hesitate to ask this question because I really don't want to start a | flame war. To me it seems clear that Scheme is a dialect of Lisp. The | Scheme standard says it's a dialect of Lisp. Many textbooks say it's a | dialect of Lisp (e.g. Norvig's book, which has a chapter called "Scheme - | an uncommon Lisp". Quiennec I believe also includes Scheme as a dialect | of Lisp.) The "Lisp" Scheme is a dialect of is no longer the current meaning of "Lisp". It is somewhat like calling English a dialect of German because of ancient history that has since between invalidated by each of their separate evolution, Fahrvergnügen, Weltanschauung, Kindergarten, and Pennsylvania to the contrary notwithstanding. There is also a very limited value in talking about "Germanic languages" in terms of your actual ability to use any of the Germanic languags. You do not order the "vertebrate" in a restaurant, but generally choose between fish or bird or meat. In other words, there is a time when an abstraction and a commonality has completely ceased to be valuable. Because of this accident a long time ago, people who hear that "Scheme is a Lisp" tend to think that what they have learned is valid for some other Lisps they meet, too. Today, this is flat out wrong. It used to be somewhat true _before_ Common Lisp, because "Lisp" had no particular direction on is own, so Scheme was not much different from the rest, which had many serious internal differences, which would pale the Scheme differences in comparison. After Common Lisp, this is no longer true, because the whole point was to consolidate and compromise away those differences. Therefore, there is no _present_ value to make Scheme look like or pretend be a Lisp. The direction that Scheme took was _not_ part of this consolidation and compromise process, no matter how much this lexical scoping thing may be credited to Scheme (history has a way of showing that cross-pollination happens when the time is right), and Scheme is therefore the odd language out -- it left the Lisp family before the important shift. Scheme is what the Lisp community did _not_ agree upon. That Scheme predates Common Lisp by several years strongly supports this view. Those who were not enamored by Scheme, went on to work with the Lisp that remained. The Scheme that was a dialect of "Lisp" is no longer the same Scheme, either -- it has evolved quite a bit and in a very different direction than the _supposed_ other "dialects of Lisp". By choosing a new name, the budding community also made it clear that it was departing from the rest of the Lisp fold to go independent. When they got what they wanted, some mysteriously want back in the fold, and that is incomprehensible from an evolutionary stand-point, unless they intend to be predators on their heritage and want "Lisp" for themselves -- which is also what many object to when they hear "Scheme is a Lisp", because it no longer is in any meaningful sense that people immediately understand unless they are purposefully obtuse. Both of these clearly imply that it is counterproductive for both languages to claim to be dialects of each other, because the _evolution_ and "growing apart" that Common Lisp and Scheme have done from whatever the ancient "Lisp" they could have been dialects of, is effectively _denied_ to have taken place when Scheme and Common Lisp are portrayed as just as closely related as they were, what, 25 years ago. The message that is therefore actually being sent by "Scheme is a Lisp" is "neither Lisp nor Scheme have evolved in 25 years", and that is wrong and very, very counterproductive. | Why is Scheme not a Lisp? Does Scheme lack some necessary feature that | is required to be considered a Lisp in your book? Was Lisp 1.5 a Lisp? You _should_ be asking what "being a Lisp" means that would make "Scheme is a Lisp" and "Common Lisp is a Lisp" true. The two languages and their attendant communities have drifted so far apart that there is nothing of value in their intersection. Add D*lan to the fray, and I think there is actually _nothing_ left, and that "being a Lisp" is diluted beyond any possibly useful and informative meaning. So by saying "Scheme is not a Lisp" I do not deny the historical and the evolutionary commonality up to a particular point, I am just saying it in the same sense as "Homo sapiens is not a simian", although some would probably spend all day arguing that any evidence of evolution has yet to show up in, say, the Middle East. /// -- In a fight against something, the fight has value, victory has none. In a fight for something, the fight is a loss, victory merely relief.