Yet Another Case Question
Steve Holden
sholden at holdenweb.com
Sun Feb 23 22:37:24 EST 2003
"David Mertz, Ph.D." <mertz at gnosis.cx> wrote ...
[...]
>
> Many of the folks who argue for case-sensitivity perceive the negative
> effect as being small or non-existent. Quite likely, most of them are
> towards the visual end of things, and the relative stumbling block of
> finding the correct case for a term is less for them than for me.
>
Well, in my own case it's so likely I'll mistype something that
case-sensitivity doesn't really add much extra overhead. Of the many typos I
make, case transposition is a very small subset.
> But in all this latest discussion (and in the prior ones about the same
> matter), I do not think I've really seen any explanation of a POSITIVE
> benefit to case-sensitivity (as a language feature). I am quite willing
> to believe there are some... but I just don't know what they are.
>
Well, the only POSITIVE benefit I can think of it that it's easiest to tell
learners that a variable name must always be written in EXACTLY the same
way. This does lend certainlty to the learning process.
> I'd like to rule out several answers, however. I think some frequent
> remarks are really misleading on this.
>
> NON-ANSWERS:
> - If a language were case-insensitive, users would use absurdly mixed
> case variables, e.g. "maXImUMCoLumnS". This is just factually
> false--many millions of lines of code in existing case-insensitive
> languages fail to show such a problem.
> - Case-sensitivity allows conventions such as allcaps CONSTANTS. Such
> conventions are indeed good... and are widely used in
> case-insensitive languages as well.
But if the language is case-insensitive, the variable "constant" will
conflict with the constant "CONSTANT".
> - Programmers should learn mental discipline by learning to remember
> casing. There's plenty of learning to go around either way,
> arbitrary games are not any plus.
Case-insensitivity, however, makes it less likely that case-based
conventions will be respected.
> - If names were case-insensitive, string literals would have to be so
> too. With all due respect to my friend Tim Churches, this notion is
> just plain whacked.
Whatever. Cold Fusion with Access, for example, does implement
case-insensitive compatrison with the contents of database fields. And let's
not even start to think about VBScript's case-insensitivity with respect to
collection keys.
> - Case-eating nano-viruses will invade our source code.
> - People naturally learn case as part of spelling. Overwhelmingly,
> this claim is false; far more ofte in ordinary usage, case varies in
> ways that have nothing to do with the referents of terms. Almost
> always, case follows other context, or is just randomly varied. In a
> few borderline situations, case-sensitive names actually are used
> outside of programming languages.
>
Frankly I'm so tired of seeing ignoramuses using apostrophes to indacte the
plural rather than the possessive, and "its" used where "it's" is
appropriate (and vice versa) that I begin to feel that some discipline is
not a bad thing ... as long as it actually HURTS!
> SEMI-ANSWERS:
> - The convention about instances and classes: "person = Person()" is
> fairly elegant. I agree. But other conventions are possible too
> that would achieve a similar effect.
>
Right. We could start all class names with "cls", for example. Didn't some
Hungarian guy suggest this some time ago?
> Yours, David...
regards
--
Steve Holden http://www.holdenweb.com/
Python Web Programming http://pydish.holdenweb.com/pwp/
Register for PyCon now! http://www.python.org/pycon/reg.html
More information about the Python-list
mailing list