I recently rolled an application that automatically encrypted a file output from another internal system using PGP and then sftp’d to a foreign target server directory where it was to be consumed by a third-party application. I have been trying to trouble shoot the whole process for about a week and was getting no response from the third-party until this morning in an email….
“Turns out, the file is named incorrectly so the system didn’t think you submitted it. There was a capital “T” that should have been lower cased.”
Ok. After an aggravated sigh (since nobody else has access to that directory and no other files named in a similar fashion), I started to wonder, “When should an application honor case sensitivity from user input outside of passwords?” I am running through my brain here trying to think of a time when I would want ‘fileName’ and ‘FileName’ to mean something different intentionally.
I am not talking about in-application variable naming conventions here, btw. I’m actually very much for case-sensitive in-language.
You’d want to preserve case whenever:
The input is displayed back to a user who expects to see it exactly as entered.
Upper- and lowercase letters have different intrinsic meaning, e.g. ‘kb’ (1000 bits) vs KB’ (1024 bytes).
The data may be processed case-sensitively external to your application, as in your problem statement.
The data will be stored but not ‘processed’ (searched, sorted, compared) so there is no need for normalization.