I've been doing a lot of training for companies moving to VB.Net and one of the big reasons that keeps coming up in why they aren't moving to C# is the case sensitivity of C#. And the only answer I have to why C# is case sensitive is that C/C++ and Java are case sensitive, and C# is designed to be a language comfortable to those developers.
But then the question is: Who in their right mind would ever leverage the ability to have a function named SquareRoot and another one named squareRoot in the same namespace? Imagine a dialog between two developers, Steve and I'm Too Damn Smart for My Own Good
Steve: Hey, I'm having trouble running the InsertCustomer function. I thought it was supposed to throw an exception when you send in a null value.
I'm Too Damn Smart for My Own Good (ITDSFMOG): Are you calling it with an uppercase or lowercase I?
Steve: Ummm, I guess uppercase.
ITDSFMOG: That one doesn't throw exceptions. Use the lower case version.
Steve: Hold on, ITDSFMOG, I'm going to set you on fire.
ITDSFMOG: Behold the power of C#! Let's see those stupid VB programmers call this function. ARGGghhhhh I'm on fire and it really burns! I regret nothinggg....
I can think of three reasons in my head why anyone would ever care about case sensitivity. One would be if this was 1968 and we could only use on character per variable name, so now you can use A-Z along with a-z. Hooray! The other reason would be to make the job of the compiler writer a little easier. And the other one would be for NotePad developers who might do something like this:
myVar = 59;
Meh, that may be gross but I sure do hate having to remember to capitalize keywords. Can appeasing the notepad developers be that important to keep case sensitivity?