Subject: Re: A modest proposal (long) From: Erik Naggum <erik@naggum.no> Date: 2000/03/01 Newsgroups: comp.lang.lisp Message-ID: <3160870773012596@naggum.no> * Erann Gat | *You* might not have DEFVARed X, but how do you know that Joe didn't? it seems to me that this the fundamental question. the answer lies in the implementation's excellence in implementing the function `describe' and any other environment-querying functions. however, there _is_ something we can and should do: add explicit support for retrieving this important piece of information about a symbol, apart from the rather obvious user interface issues like querying the system when at a symbol name in Emacs. the compiler and the interpreter could also be asked to produce warnings about special variables for those who need them. (I'd favor declaring variables special locally as a nice way to document the known special effects and also silence such warnings.) removing special variables because they confuse a few people is a typical "modern" reaction to the lack of diligence and effort that "modern" users are no longer expected to expend in learning anything. this is simply a beginner's issue. Common Lisp used to cater to experienced programmers at the cost of having to learn it, like a _skill_, something people of reasonable competence levels would _value_. such is of course terribly politically incorrect in this day and age, where blathering idiots get to vote as many times as they can by virtue of forgetting the question and anyone with any experience at all is considered prejudiced by virtue of not answering all questions up for vote with a blank stare. I vote that Common Lisp remain a language that needs to be learned and studied, and instead focus our attention on stuff that actually affects users of all categories much more than this trifling issue, like being compatible with the notion in languages with which we would like to communicate of what constitutes a symbol name: the actual, literal sequence of characters (dollar signs included), not some case-mangled version of same. I also vote that somebody write "the complete idiot's guide to special variables" instead of proposing silly language changes. | $x == (symbol-value 'x) I think "Common Perl" would be a good name for your modified language, with syntax in macros and equal signs and all. yuck. #:Erik