Subject: Re: A modest proposal (long)
From: Erik Naggum <erik@naggum.no>
Date: 2000/03/01
Newsgroups: comp.lang.lisp
Message-ID: <3160942638240195@naggum.no>

* Erann Gat
| I see I have not made myself clear.

  I see no evidence of that.  I think we have a fairly good understanding
  of your issue.  all the silly syntax detracted from its delivery, but
  you've been clear enough.

| We are already using a typographical convention to distinguish lexical
| and special variables.  We already know that we get into trouble when we
| don't adhere to that convention.  Why not move the burden of applying
| that convention from the programmer to the compiler?

  because we would want to make our own conventions in code where it is
  safe to make them.  and people don't _actually_ get into trouble in the
  first place, except the first few days they are confused about this.

| I also wonder how many of you BIND haters are also LOOP haters.  I am
| really beginning to worry that people have lost sight of the fact that
| an S-expression with just one level of parens is still an S-expression.

  no need to worry about that.  I like loop, I don't if*, and I don't like
  your bind or any of the numerous other _gratuitous_ syntax-heavy ideas
  people seem to get with an alarming regularity whenever they see a need
  for some miniscule improvement to the language.  it's as if they don't
  like simple syntax to begin with, and rush to solve any semantic issue
  with syntax.  I find this disturbing, but nonetheless indicative of
  something much more important: the language changers don't really grok
  Common Lisp.

| But symbol macros can only be established with lexical scope, so if
| there is a symbol macro it must be lexically manifested.  Global symbol
| macros would be truly problematic.

  take a look at define-symbol-macro some day and weep, then.  I love the
  fact that we have global symbol macros!  I also love the fact that we
  have constants, which also causes pervasive differences in behavior, and
  there's no truly established convention for them.  I happen to think that
  special variables is one of Common Lisp's truly great idea.  what I want,
  in response to your "it's EVIL!" is a programmatic means to query the
  system for the status of a symbol.  `describe' and friends help me as a
  user who gawks at the screen, but that is clearly insufficient.

  again, there is a need to change the language to make it more amenable to
  beginners and experienced users alike: unlike all other languages now in
  current and widespread use, Common Lisp violates the notion that what you
  see is what you get with respect to the _names_ of the symbols.  if
  symbol-value is such a problem for beginners that it needs language-smith
  attention, wouldn't you be interested in solving a _real_ problem that
  would have far-reaching consequences for our interoperability with other
  languages, other textbooks, other people?  it's not a question of case,
  it's a matter of making (setf (readtable-case *readtable*) :preserve)
  work the way people _actually_ expect it to.  think about it.  please.

#:Erik