Language change and code breaks

Nick Efford nde at comp.leeds.ac.uk
Thu Jul 19 08:56:06 EDT 2001


On 19 Jul 2001 09:38:47 +0100, Clive Page <cgp at nospam.le.ac.uk> wrote:

> In article <cpvgkq1f2b.fsf at cj20424-a.reston1.va.home.com>,
> Guido van Rossum  <guido at python.org> wrote:
> 
> >But it's still open for debate whether the problem here is Windows or
> >Unix!  All programming languages and file systems used to be
> >case-insensitive, until the designers of Unix and C decided that it
> >was too much work to write and use a case-insensitive comparison
> >routine.  It wasn't necessarily intended to be better, just easier to
> >implement.  But times have changed, and that's a lousy excuse.
> 
> As this thread has shown, nearly everyone has an opinion on this.  For what
> it's worth, I've been using Unix for nearly 20 years and I still get caught
> regularly by its case sensitivity, and I don't like it at all.  Of course
> my opinion is worth almost nothing, but there are some facts worth noting:
> 
> I'm pretty sure I've seen a study in one of the reputable computer science
> journals reporting a trial of two sets of users with two invented computer
> languages, identical except that one was case-blind and the other was case
> sensitive.  It showed that people made significantly more mistakes with a
> case-sensitive language.  Unfortunately I didn't keep the reference -
> maybe someone else remembers it too?   To me the results of that study
> were pretty conclusive.   

Interesting.  Was the study done with programming novices, or with
experienced programmers?  If the latter, did they have experience of
case-sensitive or case-insensitive languages?  I wouldn't want to
draw firm conclusions without knowing more...

I can appreciate some of the arguments made in favour of a case-
insensitive Python, but there are times when we give meaning to case
in written English: "python" is the snake, but "Python" is the
programming language; "latex" is a material, "LaTeX" is a markup
language for document typesetting; "mud" is something you get on your
shoes, but a "MUD" is something entirely different.  I would much
prefer it if Python continued to allow the distinctions we make in
written language to be preserved when coding.

Also, I'm not entirely convinced by the argument that "foo" and
"FOO" are perceived the same way when humans parse source code
visually.  In pattern recognition terms, they are surely different
entities.  It is only when natural language processing kicks in
that our brains can make the decision to treat the two the same.
So it may be that we can grok code quicker in a case-sensitive
language.

My other worry over case insensitivity is that it creates
opportunities for poor style by allowing the inconsistent use
of case.  This seems a strange path to follow for a language
that made the inspired decision to avoid using block delimiters,
thereby denying users the "freedoms" of inconsistent or
non-existent indentation.


Nick



More information about the Python-list mailing list