On 12/2/2010 2:29 PM, Doug Stone wrote:
> Yes, thanks: I was asking why, when designing a language, why make identifiers case sensitive.  One list member responded that there would be an extra overhead involved in equating, say, aVariableName with avariablename.  Overhead considerations aside, I think it would be desirable to have identifiers be case-insensitive... ?

I can't speak to the reasoning behind the design decision, but I see
potential problems with either methodology.

When using case-sensitive identifiers, you can make your program
confusing by purposely using capitalization differences between
identifiers in order to hold different values or carry out different
functions.  In a scripting language such as Ruby, a simple typoed
identifier could cause hard to find bugs, especially if the typo was a
minor capitalization difference.  It would definitely be worse if the
convention for most identifiers was camel case as that could easily hide
incorrect caps.  Fortunately, I have never seen this to be a common
issue even within some outrageously bad code I've inherited over the years.

OTOH, one could get pretty sloppy with identifier names, perhaps
unintentionally, if capitalization is ignored and thereby make a program
a challenge for a human to read later.  Maybe that wouldn't be a
frequent problem either though.

What would be the biggest advantage of allowing case-insensitivity in
your opinion?

-Jeremy