Subject: Re: case-sensitivity and identifiers (was Re: Wide character implementation)
From: Erik Naggum <erik@naggum.net>
Date: Mon, 25 Mar 2002 14:14:10 GMT
Newsgroups: comp.lang.lisp
Message-ID: <3226054464281011@naggum.net>

* Matthias Blume <matthias@shimizu-blume.com>
| This is not strictly true in all (natural) languages.

  All of these arguments indicate that using the capital letter for the
  sentence-initial word is a very bad design choice for a written language;
  it violates that strong sense of difference that those who want it to
  exist focus so strongly on.  However, I would argue that the sheer
  acceptability of destroying the importance of the capital letter in the
  sentence-intiial word cannot be ignored.  When I tried to _preserve_ the
  case of the word despite its position in the sentence, this was regarded
  as Very Wrong by a bunch of hostile lunatics.  This indicated to me that
  case is _primarily_ incidental, since the intrinsic role can at any time
  be overridden by the incidental role -- specifically, you have no idea
  whatsoever what the capitalization of the sentence-initial word would be
  if it were moved, yet this causes absolutely no problem for anyone.

| Anyway, all I wanted to say was that the distinction between different
| versions of a character set are not completely incidental in many (most?)
| natural languages.

  In real life, nothing is ever completely anything.  People use and abuse
  case "because it's there".  This would not change if capital letters were
  coded with a "flag" that communicated capitalness.  On the contrary, if
  we had such a flag, the natural development is to have _two_ flags: One
  for the incidental capital and one for the intrinsic capital.  In either
  case, the display and the coding properties of a character should be
  separated.  You provided an excellent example of this with hiragana and
  katakana.

| I do not want to use this as as argument for or against case-sensitive
| identifiers in programming languages, since I do not think that
| programming languages should in any form or manner be modelled after
| natural ones.

  That is not the argument.  Please try to understand this.  The point is
  that I have taken the liberty to design the world over again, backing up
  to _before_ computer geeks coded their character sets, and making a
  crucial change to the coding of upper-case vs lower-case characters.  The
  names "upper-case" and "lower-case" refer to typographic characteristics,
  not meaning.  Meaning may be coded separately from typography, just as we
  do in almost every other case,

| (However, I must admit that I personally prefer being able to use mixed
| case when programming.)

  If it had been most costly for you to achieve this, in terms of "knowing"
  that you would waste additional space to encode capital letters, would
  you still have done preferred it?  I believe, from the reactions to the
  extended experiment with not randmoly upcasing the sentence-initial word,
  that people would be inclined to accept a coding overhead for that role,
  as well as for proper nouns, but randmonly and liberally sprinkling such
  overhead throughout identifiers in order to achieve an unnatural visual
  effect only because it could be done, would most likely not happen.  As
  Common Lisp uses the hyphen to separate words, which would have no higher
  overhead than embedded capital letters, other languages would have far
  less inclination to make this horrible mistake, and would therefore not
  _require_ case-sensitivity.

  Whether the programmers would prefer a case-folding or a case-preserving
  case-insensitivty is an open question, but at least designing languages
  and coding conventions to use case would not likely happen if case was
  regarded as just as incidental as color or typeface.

///
-- 
  In a fight against something, the fight has value, victory has none.
  In a fight for something, the fight is a loss, victory merely relief.