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

case-sensitivity and portability



Since JKF is aksing people to form an opinion on his "compromise" plan
and vote on it, I would like to put the following arguments on the
record.  (Originally, I sent these to him alone.)  They explain why I
don't view his plan as a minor compromise, and why I oppose it.

-- Scott

----------------------------------------------------------------------

John,

Yes, I understand what you are proposing.  My objection is approximately
(but not quite) your case 2: I am afraid that if we make it both easy
and legal for portable Common Lisp code to be case-sensitive, then a few
people will start writing case-sensitive packages.

It is not that I object to having to type in an occasional backslash or
capital letter, but rather that I object (strenuously) to having to
remember the case of every symbol around.  As long as case-insensitivity
is the universal rule at the interfaces to all packages, then I can go
on living by the simple rule that case is just ignored, and I can type
things in however I like.  But if I load 100 packages and 3 of them have
case-sensitive symbols in them, then I am perforce living in a
case-sensitive Lisp and I have to remember which symbols have to have
slashified upper-case in them and where.  This is what I object to.
Like pregnancy, you can't be a little bit case-sensitive -- either you
are or you aren't.

You say that I shouldn't impose my biases onto the people who like
case-sensitivity.  Well, under the scheme you propose, they are imposing
their biases on me.  Someone has to be imposed upon here, and better you
than me.

You say that I should be grateful for any case-sensitive code that is
written in Common Lisp and therefore should put up with the hassle.  I
guess this comes down to our differing estimates of how attached people
are to case-sensitivity.  If Common Lisp is officially case-insensitive,
would the case-sensitive people refuse to use it?  I don't think so.  It
has been my experience that people who hate case-sensitivity hate it
passionately, and that the people who like it think it's sort of cute
but not a life-or-death matter.  (This issue is distinct from the issue
of whether users ever have to type or see upper-case -- lots of people
ARE passionate about that.)  So I think that if case-insensitivity is
made the law, people will easily adapt and we will avoid creating two
sub-cultures with a case-sensitive interface between them.  Then I can
be grateful for the same code and not have to curse it for bringing case
into an otherwise beautiful universe.  Of course, all of this is only
based on my discussions with CMU Unix types; the Berkeley species may be
more rabid about all this.

I should emphasize that there is a reason for the asymmetry noted above
-- if it were just that the case-insensitive crowd was being arbitrary
and unreasonable, we would not want to reward that.  If you are used to
case-insensitive systems, as most non-Unix people are, then when you go
to a case-sensitive system you make errors with almost everything you
type.  That's one reason why it is so hard to use Unix only occasionally
-- either you use Unix a lot or the case-sensitivity drives you nuts.
But if you are used to case-sensitive systems and move to one that
ignores case, there's no problem referring to things.  The only problem
is that when you want to do some cute naming hack like the one you
mentioned in your mail, you have to think of some way other than case to
distinguish between "Car" and "car".  As they say, that seems like a small
price to pay for portability.

So that's why I'm opposed to letting each file select whether case
sensitivity is on or off and why I want to impose my own biases on
everyone when it comes to the standard for portable Common Lisp code.

-- Scott