Subject: Re: Beginner question: performance problems with a simple program
From: Erik Naggum <>
Date: Wed, 02 Jan 2002 00:30:08 GMT
Newsgroups: comp.lang.lisp
Message-ID: <>

* Duane Rettig <>
| As for yes-or-no-p et al, it is true that we have not implemented the
| LC_MESSAGES category, but it is entirely possible.  And I may be wrong,
| but my reading of the definition of yes-or-no-p in the spec doesn't
| preclude an implementor from basing either the message string or the
| actual "yes"/"no" responses on the locale.

  Fixing yes-or-no-p in the locale is the wrong place to do it.  This is
  clearly a user-interface function that depends on a particular mode of
  user interaction with specific programmer and user expectations.  Making
  it more general is a mistake.  A more elaborate user interface would need
  more than just yes-or-no-p and y-or-n-p.  _If_ these functions match the
  user interface needs, they will be used, and then all parties involved
  expect them to be exactly as they were when they got into the language.
  If they are not satisfactory for user interaction, some other functions
  will be written and used in their place.  Please do not bother making
  "localized" versions of these functions.

  I work in two languages all the time -- have been since I were a kid, and
  I consider myself fluent in both.  I am constantly deeply annoyed by the
  incompetence of the fools who think they can translate movies and books,
  and can only imagine what kind of mistakes are made in translations of
  languages I cannot read in the original.  Not many years ago, fluency in
  several European languages were common among academics and the lingua
  franca (!) was Latin _long_ after that language had ceased to be spoken.
  It is somewhat unfortunate that computer science uses a living language
  for its lingua franca, in contrast to law and medicine, which are both
  firmly based in much older languages and cultures, because that makes a
  lot of people who fail to grasp the function of a common language think
  it is a natural language and can be replaced by another, particularly
  those who speak it naturally and are overcome with political correctness
  and think they should be guilty of the fact that historic accidents
  favored their language.  The common language is, however, _not_ a natural
  language except by accident, and it cannot be replaced by another natural
  language without replacing the whole culture with it.  Those who think
  _their_ natural language should be the common language should just get
  over their egoistic provincialism and learn to deal with reality.

  And speaking as a user of Norwegian software, I do not accept some
  two-bit "translation".  If I have to translate the incompetent Norwegian
  back to what I think the natural English would have been in order to
  understand what the Norwegian probably means, all parties involved would
  have been better off with the original.  Like the other day, I saw "IP
  header compression" translated on a cell phone to what best translates
  back to "reduced headlines".  I think translation between English and
  Norwegian is important enough that I contribute to dictionaries and try
  to help companies who pay their translators basically nothing to write
  the local version of text that somebody else paid a large sum of money to
  get just right in English.  Thankfully, however, original-language
  paperbacks in British and American English are now outselling translated
  versions, and several major film releases are available in original
  versions, so there is hope for this undersized country.  English is now
  taught from the first grade.

  The more I have worked with software in these two different languages,
  the more I am convinced that message catalogs is one of the worst
  non-solutions.  It works OK only if you have a primary language and
  subordinate languages that you do not care if suffer from stilted
  expression and phony flow of logic.  We have to realize that the logic
  flow of the primary language is deeply engrained in the program itself
  and that "translating" what appears to be a step-by-step procedure in one
  language may require fewer or more steps and with a different order in
  another language, like in which order you provide the components of your
  name and postal address, etc.  The whole user interface/experience needs
  to be tailored to each culture and language.  "Translation" must be done
  by programming.

  This naturally leads to the conclusion that software should not speak
  natural languages to users, but formalized protocols to user interface
  engines.  In other words, yes-or-no-p would be a protocol element, not a
  _specific_ user interaction in my view.