From ... Path: archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-01!supernews.com!newsfeed.gamma.ru!Gamma.RU!newsfeed00.sul.t-online.de!t-online.de!newsfeed.esat.net!nslave.kpnqwest.net!nloc.kpnqwest.net!nmaster.kpnqwest.net!nreader2.kpnqwest.net.POSTED!not-for-mail Newsgroups: comp.lang.lisp Subject: Re: data hygiene [Re: Why is Scheme not a Lisp?] References: <87u1rkl068.fsf@charter.net> <87wuwg1b05.fsf@photino.sid.rice.edu> <87ofhrc3ed.fsf@charter.net> <874rjj1ve1.fsf@photino.sid.rice.edu> <87it7yz2sf.fsf@photino.sid.rice.edu> <87d6y5heq2.fsf@becket.becket.net> Mail-Copies-To: never From: Erik Naggum Message-ID: <3225240324630811@naggum.net> Organization: Naggum Software, Oslo, Norway Lines: 54 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sat, 16 Mar 2002 04:05:13 GMT X-Complaints-To: newsmaster@KPNQwest.no X-Trace: nreader2.kpnqwest.net 1016251513 193.71.199.50 (Sat, 16 Mar 2002 05:05:13 MET) NNTP-Posting-Date: Sat, 16 Mar 2002 05:05:13 MET Xref: archiver1.google.com comp.lang.lisp:29138 * 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.