D
Daniele Futtorovic
I disagree with this. In English, capitalization of a word can change
depending on its context, without changing the meaning. I'll
capitalize a word in a title that I would not capitalize in the
middle of a normal sentence. I don't think that makes English writers
sloppy - it just means capitalization does not have much to do with
word meaning in that language.
Well, my point was about programming languages, i.e. totally different
things than English. Consequently, what holds true for the former need
not be applicable to the latter, and what's a contradiction to the
latter needs not be a contradiction to the former.
I don't have a strong view about which is better for programming
languages, case sensitive or case insensitive. Either works well.
I'd agree either work equally well as far as the programming language is
concerned. I'd disagree either work equally well as far as the
/programmer/ is concerned.
What matters is for the programmer to match thinking and attitude to
the language - and that applies to a lot more than case sensitivity.
Why, certainly. Actually, one /automatically/ tends match their thinking
and attitude to the tool they use for (personal) productivity all day
long (IOW as long as they don't switch languages really often), since
that's a premice for maximizing effectiveness. This phenomenon is a
crucial part of my argumentation. I argue that there are languages which
are /better/ to match with your thinking than others.
If you are programming in a case sensitive language, it is important
to really see "String" and "string" as different words, even though
they would be the same word in English or in any case-insensitive
programming language. Equally, if you are programming in a
case-insensitive language, you need to see them as the same word.
Again, that's my point. If "String" and "string" are the same thing, you
have to do additional checks while reading. Think collated comparisions
versus plain ones. If you can be sure that a sequence of characters
you're looking for (say for instance you're tracking a variable's use in
an algorithm) will appear, if relevant, in exactly the same form you saw
it first in, then it's much less of a mental strain to find it.
Remember the topic which came up a while ago, about humans being able to
read a (-n English) sentence where the words' letters were in a slightly
different order? The explanation is that in order to read fast, one does
not look at the individual letters, but at the word as a whole. Take the
example I gave above again. You're looking for a variable. If the
language is case-sensitive, you can rely on the word's /shape/ and do
not have to look at the individual characters. Thus, you avoid a
sementical translation of the letter's graphical shape to the abstract
"letter". Easier. You can feel it.
Actually, the biggest point in my favor is brought by the makers of the
standard editor for the language the OP spoke about: Visual Basic/Studio
(I can't seem to get its name straight). By default, that editor will
change any word you type to match a certain case: capitalized for
keywords (IIRC) or the exact spelling of whatever variable matches the
word just typed when compared toLowerCase(). Now, guess why it does
that: because otherwise it's a pain in the ass (the size of moderately
large pumpkin) to read.
If they agree it's a necessity for the result, they should agree it had
even better be built into the language in the first place.
On the other hand, this really is the pathetic ranting of a pricky
old geezeress? geezerette? she-geezer? (What is the female of
"geezer" anyway?).
Patricia.
IMO, the most important trait of a programmer is mental flexibility,
including the ability to adjust thinking to fit the problem and
programming language. It is important to be disciplined about the
things that matter in the current context, and a waste of time and
effort to be unnecessarily precise about things that don't matter.
I don't disagree with that. However, note how, as an allegory,
gymnastics are seldom performed on quicksand. For you need firm ground
to be flexible.
df.