I’ve always thought that, from a distance, case sensitivity looks like a bad idea. It’s even worse up close.
There is no upside. It only creates more work and endless opportunities for hard-to-catch mistakes. The only thing it allows you to do is to have a variable of type String named string, or perhaps two variables named astring and aString, but is that worth all this extra effort? It’s not like there is a shortage of available variable names so that we need to utilise every possible combination of letters. And no one in their right mind would use variable names that only differ by casing, anyway.
Humans don’t think in lowercase and uppercase. If I address a letter to someone in LONDON it will go to the same place as one addressed to London. Programming languages are primarily for human consumption, and should be designed thereafter. Otherwise we can all go back to writing Assembler code.
And if a language is to have case sensitivity for historical reasons (because C had it, decades ago, so all the C-derived languages are stuck with it) then the IDE should at least try to make it easy for the developer and correct, or suggest corrections for, typing errors that only involve casing.
If I type
fileutil f = new fileutil();
and there is no fileutil class but there is a FileUtil class, then it would be nice if the IDE fixed that! After all, it can suggest solutions to more advanced issues, such as incomplete referencing – if I create an ArrayList but haven’t imported the java.util.ArrayList class, it proposes to import it – and it can also suggest conceptually more complex changes like refactorings.
Is this some sort of macho thing where “Real Programmers Like Hitting the Shift Key”?
Leave a comment