Overhead considerations aside, I think it would
be desirable to have identifiers be case-insensitive... ?
As Robert Dober said, in Ruby, constants (Upper case) are
different beasts than variables (lower case).
An unfortunately unpasteable example:
irb(main):001:0> Hello = "I am a constant!"
=> "I am a constant!"
irb(main):002:0> hello = "I am a variable."
=> "I am a variable."
irb(main):003:0> Hello = "Indeed, I am a constant."
(irb):3: warning: already initialized constant Hello
=> "Indeed, I am a constant."
irb(main):004:0> def access_variable_example
irb(main):005:1> puts hello
irb(main):006:1> end
irb(main):007:0> access_variable_example
NameError: undefined local variable or method `hello' for main:Object
from (irb):5:in `access_variable_example'
from (irb):7
from /usr/local/bin/irb:12:in `<main>'
irb(main):008:0> def access_constant_example
irb(main):009:1> puts Hello
irb(main):010:1> end
=> nil
irb(main):011:0> access_constant_example
Indeed, I am a constant.
=> nil
It is desirable for a language to have a syntax which reflects the
semantics. Capitalization is easy to see, easy to type, and
doesn't add any extra waffle.
Also, case sensitivity gives me more choice. I can have sockets and
Sockets and SOCKETS, and have them, individually, mean whatever I want
to.
Johnny