Case sensitivity in computing is a display case for human sensitivity for case. It demonstrates the human tendency to establish conventions wherever possible.

Case sensitive computer keyboards and printers only became popular in the 70s. The reason FORTRAN, COBOL, BASIC and all programs written in it are in ALL CAPS is because that's all the computer offered at the time. When lower case letters became available, popular computing environments such as IBM System/370, VAX/VMS remained case insensitive; case sensitivity would break software compatibility and the mindset of their user base. Lower case was reserved for use in text for human consumption. IBM even maintained this approach on a completely new platform, the IBM PC.

It took different environments to break away from the upper case. Unix, designed in 1970, was case sensitive from the start. Programming languages such as Pascal, C, and Prolog, also created in 1970, used mixed case. But even in case sensitive environments, the use of case is mostly free. What is interesting about this freedom is that users will quickly adopt very rigid conventions on the use of case, even when no person and no software is telling them to.

Some examples.

  • Unix has a very strong tradition of lower case. Filenames are expected to be lower case. Many users adopt the convention of first-capital or all-capital directory names. I may respect such users, but I will not respect their use of Unix. There is abolutely no rational reason behind my feeling; it just "doesn't belong". Users or user apps do not enforce it in any way. Environment variables, however, are in all caps. The personal mailfolder is named ~/Mail. Command line flags can be capitalized when the same lower case character is already in use. In all, I think you could write a 10-page 'Unix capitalization style guide' to describe all the conventions; very few of them would be enforced or even mentioned to users.
  • C follows the lower case tradition of Unix, but it tends to use longer identifiers, often consisting of multiple words. The convention is to separate these with an underscore. All-capitals are reserved for preprocessor constants, such as NULL. Mixed case is not used at all. Nothing in C processing software enforces these conventions.
  • Pascal has a mixed case tradition; in particular, multi-word identifiers are concatenated with capitalization of each first letter. A C program containing the identifier NumberOfConventions is 100% valid C, and 99% certain to be the work of a Pascal programmer.
  • troff, TeX and LaTeX show their Unix heritage by using lowercase-only keywords; HTML and XML show their SGML affiliation, and SGML its IBM origins, by using all-uppercase keywords. By convention. No self-respecting SGML user would be caught dead writing <a href="">, although it is perfectly valid HTML.

I could go on and on, but you get the idea: mixed case is in computer land what accents and taste are in 'real life': a way for users to identify origins and communities in what they see, and to express their own position - mostly subconsciously.

Log in or registerto write something here or to contact authors.