Case-sensitivity is the past trolling us
tiamat.tsotech.com
tiamat.tsotech.com
I believe Multics was the first case-sensitive system, with Unix following its example. Until then everything was case insensitive (ITS, CTSS, TOPS-10, VMS, TENEX, CMS etc etc). Many of the early systems had only one case anyway, or the system code was, so if you had a terminal that supported multiple case it was automatically folded. e.g. the PDP-6/10 set of machines, although they supported 7 bit ascii (five characters to a word) also used a six bit character set (packed six characters to a word) that only had upper case.
Multics reveled in the luxury of its mainframe power (around 1 MIPS perhaps) and had a "full" (don't remember if it was 7 or 8 bit, suspect 7) ASCII character set.
You'll also see that many older programming languages (e.g. FORTRAN, LISP, and, sigh, BASIC and COBOL) are case insensitive while newer ones are not.
We must immediately adopt the recommendations in http://www.dwheeler.com/essays/fixing-unix-linux-filenames.h...
(No, the ability for filenames to contain arbitrary octets is not useful. It never has been.)
The only languages that don't use case are those languages where case-insensitivity was aggressively enforced.
That's not a vote for case insensitivity.
And, that's before we start considering languages where case actually completely changes the glyph or has no well-defined meaning.
More importantly, case folding is complicated or ill-defined in some non-English languages, and there are presumably edge cases in the algorithms. So it gets harder to tell what any given code will do.
If "var x" and "VAR X" were the same in JavaScript, we'd just have to make our company style guide longer. Having more ways to write different-looking but equivalent code isn't necessarily a good thing.
Sure, it's fun to write code like this: Circle circle = Circle.CIRCLE; But were I to use a case-insensitive language, I'm pretty sure I'd get comfortable not being able to do so.
Sounds like the kind of thing you should try before advocating it.
There were research studies showing that folks made less errors with case-insensitivity, and it's something that would help novices without hurting "experts" at all (in fact, save time). Even Guido van Rossom thought it might be a good idea to make Python case-insensitive apparently, but folks revolted (NIMPY - not in my python!): https://mail.python.org/pipermail/python-list/2000-May/03710...
Ultimately, who cares if python or javascript (excuse me, Python or JavaScript) are case sensitive. That's just how they are designed, and they weren't designed for beginners. Maybe future language designers though might not do something solely because it is the tradition, the cargo cult practice.
Upper case ß, or take turkish as another example.
Not every language agrees with the idea that case sensitivity is trolling.
Converting two strings to lowercase and comparing those is not case insensitivity. I present to you 4 characters: I, ı, İ and i. They break your application.
And that's where case-insensitivity becomes evil. I have no facts (other than code reviews I do) to back this up; but the amount of developers who don't understand case-insensitivity is hideously dangerous. Where I work I would venture to say I correct 95% of developers from this (C#):
a.ToLower() == b.ToLower()
To this:
a.Equals(b, StringComparison.CurrentCultureIgnoreCase)
Even that flops with the Turkish Is though - what you need there is "accent insensitivity".
I fundamentally agree with the argument that most things should be case insensitive - I just think that the task cannot be trusted to most of the developers today. Even though I am extremely well versed in globalization even I mess up the majority of the time. Case insensitivity is HARD.