It is worth noting that practically every language (all main stream languages) is case sensitive. To prevent errors like you encountered there generally are strict case guidelines when it comes to naming elements such as JAVA methods (always start with lower cases, words after start with upper like "getTotalCount") or C/C++ constants (always upper case like "INBUFFERSIZE").
The reason this exists is likely due to how computers parse human readable text. An upper and lower case character are technically unrelated and are interpreted as completely different characters. Although functions do exist which force a relation between the two (such as case insensitive compare, or convert case), these likely were not standardized in the early days of computers when language fundamentals were being designed. Although there have been plenty of opportunities to change the case behaviour of languages to be insensitive I guess people grew to expect languages to be case sensitive so no attempt to change it has been made.
Not everything is case sensitive. Tags on this site are a good example. Also many password schemes are case insensitive to solve the "caps lock" problem.