[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: DEFAULT-CASE



     I'm not trying to start a religious war.  I'm not saying that
    case-sensitive is better or worse than case-insensitive.   I'm just
    saying that there are large numbers of people who favor each position
    and that Common Lisp should support both.    
    
I'm trying to stay out of most cleanup discussions these days, but feel
compelled to say something about this one, especially since John indicated
that he was reading silence as non-disagreement.

The argument here is that we should make it easy for those people who
prefer case-sensitivity to write their code that way and for those who like
case-insensitivity (with symbols being bashed into some canonical case) to
write their code that way.  I think that this is a recipe for consfusion
and major portability problems.  As soon as there is code around that
assumes case sensitivity, anyone who wants to use that code in conjuction
with code of his own has to go along with case sensitivity.  Attempts to
mix the two styles will break.  It would be like the old days when half the
Lisp world used octal and the other half used decimal.  So if this measure
is adopted, it won't be a matter of "freedom of choice".  We'll either have
two incompatible software words within Common Lisp, or it will drag us all
through a major incompatible change we don't want.

I think we have to choose one style or the other for code if portability is
to be maintained.  For better or for worse, we made that choice in favor of
a case-bashing convention.  I don't think I'd favor the same choice again
if compatibility with the past were not an issue, but I don't think we can
make such a sweeping incompatible change now.  And we can't straddle the
fence.

I've got no problem with a proposal that would allow the Common Lisp reader
to go into some non-case-smashing mode.  This would be useful when the
reader is reading code for some embedded language with different case
rules, building up a dtabase, or doing other tasks.  But we should make it
clear that when reading Common Lisp code, the case-bashing convention still
holds.

-- Scott