[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
case sensitivity, reply to comments
- To: common-lisp@su-ai
- Subject: case sensitivity, reply to comments
- From: Kim.jkf at Berkeley
- From: Kim:jkf (John Foderaro)
- Date: Thu, 26 Aug 1982 03:15:00 -0000
- Date: Thu, 26 Aug 1982 03:22:00 -0000
- Mail-from: UCBKIM received by UCBVAX at 25-Aug-82 23:23:57-PDT (Wed)
I don't think that it is too late to discuss this issue. Surely no
implementation or planned implementation depends so much on conversion to
upper case that it would require more than a few minutes to alter it to
convert to lower case and have case sensitivity as an option.
Scott mentioned that this issue was decided nine month ago and that
... the overwhelming majority of people wanted to avoid making
Common Lisp case-sensitive.
This brings up two questions:
1) how many people did you have to argue the side of case sensitive lisps?
and more importantly:
2) did anyone suggest the compromise I've proposed which requires both case
sensitive and case insensitive readers? If the committee members felt
that they had to choose between a case sensitive and a case insensitive
reader, then, based on the committee's composition, it is no surprise that
they chose a case insensitive one.
Regarding portability:
Like Scott, I consider this to be very important. This is, in fact, the
primary reason why Common Lisp must make the option to be case-sensitive
part of the standard. If I write a file of case-sensitive code, I need only
put the appropriate eval-when's at the beginning of the code to tell the
loader/compiler to switch to case-sensitive mode when reading the rest of
this file. That will insure the portability of my code no matter what the
environment is when it is read in.
If case-sensitivity is not part of the Common Lisp standard, then some
sites will add it as an extension and it will just about guarantee that
their code is non-portable.
Conversion to upper or lower case:
I agree that it is important to always convert to either lower or to
upper case when in case insensitive mode. The arguments for each case
(according to Scott) are:
upper: 'tradition of past Lisps'.
What is is this tradition based on? Is it based on the brilliant
insight of a Lisp pioneer? No, of course not. It is based on the crummy
upper case only teletypes that existed in the old days. Shall Common Lisp
become a shrine for the memory of the Teletype Model 33?
lower: 'tradition of Unix'
What is important is not Unix itself, but the fact that as a result of
using Unix many people now enjoy (and expect) case-sensitivity in systems
they use. If case-sensitivity is put into Common Lisp as an option, then it
is imperative that system symbols be in lower case or else Common Lisp would
be unreasonable to use when case sensitivity is turned on.
If case sensitivity is not put in then the only thing gained by converting
to lower case is readability.
Those are the arguments for upper or lower case. Since converting to
upper case harms the case sensitive crowd, and converting to lower
case harms no one but helps the case sensitive crowd, the choice seems
obvious.
The biggest problem here is inertia. Just ask yourself whether adding a
case sensitive switch will harm you if you never use it. Consider that it
will make the Common Lisp a lot more palatable to a large group of users.
And consider that without conversion to lower case in case-insensitive mode,
the case-sensitive mode would be almost useless.
It seems that too much time has been spent trying to find a middle ground
between case sensitivity and insensitivity, that is one which assumes case
insensitivity and then trys to add features of case sensitive languages
(such as 'what you type in is what gets printed out'). I don't think this
kind of thing is worth the effort. It certainly won't satisfy the
case-sensitive person who feels that Foo and foo are distinct things.
John Foderaro