On 2018-Apr-05 22:57:49 -0700, Bakul Shah <bakul(a)bitblocks.com> wrote:
Getting back to programming languages, I am not sure
case
distinction really helps. Many of the earlier languages such
as Algol, PL/I, APL, Pascal, Fortran, Cobol, Lisp didn't have
it and I don't think it was solely due to an attempt to pack
more chars in a word.
Early APL implementations do have cases - they use underscored capitals
as a second case (rather like early Unix would use A and \A). In the
case of APL, I suspect the limiting factor was the number of characters
on a golfball. Internally, it required 8-bit characters to represent
all the symbols.
Capitalization can improve legibility in
written languages but the meaning of a word often doesn't
change in spite of case change. In modern PLs the meaning can
be entirely different, and even the category (DO vs do) and I
am not sure that increases legibility.
Cases (particularly capitalisation) can add meaning - German and English
both use capitalisation as hints (I'm not sure about other languages).
Many programming languages have defacto conventions that use case to
indicate the category of a name (eg constants and macros are all upper
case in C) and Go uses capitalisation to control visibility.
The problem of "DO" vs "do" is no different to "xl" vs
"x1" vs "xI" or
"DO" vs "D0" - they are distinct to the compiler but can be confusing
to
the reader and are probably better handled via style conventions than
trying to mandate that the compiler makes them equivalent.
Not to mention the
camelCaseHorror. Much prefer hyphenated-words
Hyphenated variable names don't work in many programming languages
because "-" is an operator. The use of camelCase vs underscores tends
to be a language convention. Whe
Using "case-insensitive, case-preserving" helps in some cases but I
suspect at least some of that is because that is mostly how English
works and therefore English speakers will naturally read "THIS" and
"this" as equivalent. Someone whose native language is not a latin
script is likely to find having "THIS" and "this" being the same is
quite confusing and an English speaker probably won't instinctively
see "jqvkwrri" and "JQVKWRRI" as identical. (BTW, DNS is an example
of a case-insensitive, case-preserving service).
--
Peter Jeremy