Case insensitivity

Thomas Wouters thomas at xs4all.net
Fri Jul 20 07:52:31 EDT 2001


On Thu, Jul 19, 2001 at 08:30:15PM +0000, Guido van Rossum wrote:

> TeachScheme is an interesting case -- Scheme is a case-sensitive
> language, but in "beginner mode", TeachScheme is case-insensitive.  I
> can't find it on the web, but I bet the TeachScheme folks have a
> rationale for this decision.

I have another good example for you: LambdaMOO, which is (as I've said in
other posts) very Pythonic, is not only case-insensitive in its identifiers,
it's even case-insensitive in string comparison:

eval ;{A, a} = {"upper", "lower"} ; player:tell("a is " + a + " and A is " + A)
a is lower and A is lower

(the first statement is a 'sequence unpacking', the second is MOO's version
of a method call (<object>:<method>), and the 'eval' and semicolons are
necessary to evaluate the expression "on the prompt" :)

eval "SOMETHING" == "something"
=> 1

It's true that this makes it a lot easier for real programming-newbies to
learn the language, and to learn programming (I know it certainly helped in
my case!) but whether it's a net win in the end is something else. It helps
because it takes the burden off of the programmer to remember that kind of
detail, allows them to focus on what's important (this is another common
trait in MOO and Python :-) and thus lower the learning curve. It did take
me a while to get used to case-sensitive string comparison in the real
world, but I never really used the case-insensitive identifiers (on the
other hand, it never bit me either, as far as I recall.)

On the other hand, some people would argue that I'm a decent programmer,
intuitively, and that I'm not a good example. I know of MOO-programmers that
do use and enjoy and sometimes even need the case insensitivity, but none of
those has even thought about programming outside of MOO. I kinda doubt
they'll be persuaded by a case-insensitive Python; they like programming in
an interactive environment, where you show off you programs to your ('net)
friends and to total strangers alike, and where you can @list other people's
programs to see how they do it. Now if Python had something like that,
that'd sure get 'kids' of all ages addicted :)

> To me, the only real important question is, how can we introduce
> case-sensitivity for novices without breaking the millions of lines of
> existing Python code.  One option could be: forget it, it's too late.
> Another: put the case-insensitivity in the tools.

I'd opt for the tools.

-- 
Thomas Wouters <thomas at xs4all.net>

Hi! I'm a .signature virus! copy me into your .signature file to help me spread!




More information about the Python-list mailing list