Subject: Re: data hygiene [Re: Why is Scheme not a Lisp?] From: Erik Naggum <erik@naggum.net> Date: Sat, 16 Mar 2002 04:05:13 GMT Newsgroups: comp.lang.lisp Message-ID: <3225240324630811@naggum.net> * Thomas Bushnell, BSG | Data-hygene would be important if symbols in Scheme had all the features | that they do in Common Lisp. I think you trivialize a very good article to the point of unspeakable rudeness. Try to understand the point that Scheme is actually lacking an important feature, and that it just lost a serious claim to "Lispness" by virtue of a design decision that goes all the way back to Algol, and not at all to Lisp. Perhaps it can be said as imply as this: In the Algol family, the symbol table is a compiler construction. In the Lisp family, the symbol table is a run-time resource. In this sense, Scheme is a member of the Algol family and not a member of the Lisp family. The problem is not that data-hygiene would be important, it is that data-hygiene _is_ important and Scheme does not support it, while it makes a terrible stink about program-hygiene. Where does all this "code is data" propaganda go when you so strongly favor one at the expense of the other? It suddenly sounds hollow for Scheme. | That is, from the Scheme perspective, we're dealing with global variables | here, and We Don't Like Global Variables. Or at least, that's the point. What a silly position to take. | Now you argue that this has made the macro system in Scheme "very | complex", but I think that's looking at the wrong side of the problem. wrong = non-Scheme. How typical! How unwilling to understand and think. | Scheme macros, from the user's perspective, are as simple as can be: they | reliably Just Work. Everytime I worry (oh, will this shadow something | wrongs) and I bother figuring it out, I realize, "nope, the rules nicely | make sure the Right Thing will happen". A person who always agrees with those in power is free in any political system, even a dictatorship. Common Lisp tries to accomodate people who do not always agree on everything, only on a small set of things that enable people to be free even when they disagree violently about other things. Scheme freaks tend to regard my desire to keep comp.lang.lisp a place where we agree on a small number of things that enable a large degree of freedom, as the kind of dictatorship _they_ live in, where so much is dictated to be The Right Thing that only those who agree with all of it are free. But Common Lisp is a different political animal -- it is a working political compromise formed in order to get something done and to enable people to do unexpectedly complex and interesting things -- such as Artificial Intelligence. Scheme is about doing One Right Thing, whatever that might be -- I do not care to find out. /// -- 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.