Case-sensitivity: why -- or why not? (was Re: Damnation!)

Guido van Rossum guido at
Sat May 20 22:01:37 EDT 2000

"Thomas Malik" <340083143317-0001 at> writes:

> I've just convinced our whole department (at a german bank) to use Python
> instead of Perl. A case - insensitive language won't be acceptable by any of
> us. So, Guido, should i start looking for another job ...?

This is an example of what I meant when I said "voting doesn't help".

You're saying it's unacceptable -- a vote.  But you don't say *why*
you vote that way, so your vote gets multiplied by zero (rather than
by the size of your department or the capital of your bank, as you
seem to hope by bringing them into the argument :-).

Here's a way to make your vote count: explain what it is about case
sensitive languages that you hate.  Then we can have a discussion
about it.

I am a very case-sensitive person myself: it bothers me when people
don't start their sentences with capital letters or when they refer to
themselves as "i" in lowercase -- or when people refer to Python as
"python" or "PYTHON".  (Come to think of it, it bothered me when you
wrote "german" instead of "German" :-).

Yet, here are some of the reasons why I am considering making Python

(1) Randy Pausch, a professor at CMU, found, when teaching Python to
non-CS students in the context of Alice (, that the
number one problem his students were having was to remember that case
matters in Python.  (The number two problem was 1/2 == 0; there was no
significalt number three problem.)

(2) I've met many people who are experienced and accomplished Python
programmers but who still, when referring to Python modules or
functions in an informal context (e.g. email), make up their own case
conventions.  E.g. people will write me about the String module or
about FTPLib.

I also know some of the things I plan to do to make the transition
painless and to make the usual problems with case insensitivity more
palatable.  E.g. I may add a case insensitivity feature to IDLE which
makes sure that all identifiers are written in a consistent case, I
may add flags to pre-Py3k Python interpreters to turn on case
insensitivity or case sensitivity or a special warning mode.

--Guido van Rossum (home page:

More information about the Python-list mailing list