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

case sensitivity



  I would like to bring up the issue of case sensitivity one last time.  The
lastest version of the Common Lisp manual states that unescaped characters
in symbols will be converted to upper case, and I saw no mention of any way
of turning off this case conversion 'feature'.   From past discussions, I
know that any effort to determine whether case sensitivity is good or bad is
futile.  Thus I would like to take a look at the problem in a different way
and convince you that Common Lisp must be able to be both case sensitive and
case insensitive if it is to be widely accepted and used.

    I believe that a person's feelings about case sensitivity in Lisp is a
function of the operating system he is most at home with.  If your operating
system is case insensitive (by that I mean that file names and most
utilities are case insensitive), then you prefer your Lisp to be case
insensitive.  Most (if not all) pdp-10 os's are case insensitive and since
much lisp work has been done on 10's, it is no surprise that most Lisps are
case insensitive.  Although I don't know everyone on the Common Lisp
committee, my guess is that most of them favor case insensitivity due to
their use of case insensitive Lisps on case insensitive operating systems.

    What about the future?  I'm sure you realize that Vax'es and personal
workstations are going to be everywhere, and that many of them will run Unix
or some descendant.  Unix is case sensitive and if you want Common Lisp to
fit in on a Unix system you have to take that into account.  The fact that
Common Lisp is case insensitive would make it uncomfortable for the Unix
programmer to use.  The fact that everything is converted to UPPER CASE
would make it even worse.  The first thing Unix people would do with Common
Lisp is to hack it to make it case sensitive and convert all the code to
lower case.

    In order to prevent divergence of Unix Common Lisp from other
implementations, I propose this change:

 1) there is a 'switch' which selects whether the reader is case sensitive
   or insensitive.

 2) when the reader is case insensitive, it converts everything to lower
   case.


 I've already mentioned why (1) is important.  The reason that (2) is
important is that it permits someone who has selected case sensitivity to
write 'car' and have it match the correct system function.  Without
everything converted to upper case, the case sensitive programmer would have
to write CAR.  [The first thing most people do around here when they get a
new terminal is to disable the caps-lock key, so typing lots of capital
letters would be a real burden].  The only people hurt by (2) are those case
sensitive systems which favor upper case.  I know of no such systems.

If you disagree with my proposal, please do no disagree for such irrelevant
reasons as:

  (a) your personal dislike for case sensitive systems.  There are people
      out in the world who prefer them and you must think of them.

  (b) your personal dislike for Unix.  It exists and many, many people use
      it.  It is probably the largest 'market' for Common Lisp so you should
      take it seriously.

You may disagree with converting everything to lower case because it will
have a visable affect on what you see on your terminal. Based on what I see
in the Common Lisp Manual and Lisp Machine Manual, I get the feeling that
some people feel that lower case is more readable than upper case.
If people really don't want to see lisp in lower case, then they would have
forced the manual writers to switch to upper case.



					John Foderaro