[Edu-sig] On case sensitivity
Guido van Rossum
guido@python.org
Fri, 04 Feb 2000 09:52:47 -0500
For those here who weren't at the recent Python Conference, it may be
hard to understand the case sensitivity issue. I'll try to explain
some of the background.
One of the best keynotes was given by Randy Pausch, who demonstrated
Alice, a 3D virtual reality builder that uses Python as the control
language (www.alice.org). Randy is a very motivating speaker, and his
stories and demos of small teams of 19-year old non-cs students
creating interactive virtual worlds using Alice (and hence programming
in Python) had the audience in awe. He reminded us that we (the
audience) were geeks -- who make up only one percent of the population
-- and that we need to think about how we talk to non-geeks.
Randy explained the importance of user testing, and mentioned that
only two Python language issues were a problem: (1) case sensitivity
and (2) integer division. I believe he said that case sensitivity was
by far the worst offender, affecting as many as 75% of the students.
He also said that *that's it*. No other Python features (used in
Alice) caused problem for his audience. The rest of the user testing
dealt with things like how to express a quarter turn (the answer is
1/4, not 90, as we geeks think :-), and what to name rotations along
the x/y/z axes (the answer is, surprising, turn left/right, turn
up/down, and *roll* left/right).
Alice now uses a modified Python interpreter which is case insensitive
and where 1/4 returns 0.25.
Randy's scientific evidence swayed many who were there into accepting
that a language for "everybody" has to be case insensitive.
For those who still don't like it, trust me that the programming
environment will enforce case *consistency* -- if you name a function
or variable "Spam", later references to it as "spam" or "SPAM" will
quietly be changed to use "Spam". There are also some ideas on how to
start warning about dependencies on case sensitivity in Python 1.6.
(We'll probably have to change the standard library in some places to
make it conform!)
--Guido van Rossum (home page: http://www.python.org/~guido/)