[comp.lang.eiffel] support for non-US keyboards

bertrand@eiffel.UUCP (Bertrand Meyer) (02/09/90)

In article <1756@novavax.UUCP>, Bob Weiner (weiner@novavax.UUCP) objects
to my earlier posting (<236@eiffel.UUCP>) about using the exclamation
mark character (!) as special character in character and string constants.
Here is an abbreviated form of his arguments:

> If this change were optional for international programmers it
> would be fine but if it is required of all programmers it is
> unacceptable. [...] The backslash as a character quote has
> stood the test of time for usage, readability, etc. on UNIX systems.
> If UNIX International has not seen fit to eliminate its usage,
> there is no reason that such should be done in Eiffel.

> Just add some mechanism in the character mapping file that lets
> programmers use exclamation marks instead of backquotes if they want.

With all due respect, I disagree.

1. Compatibility with Unix and C usage is a factor to consider, but
not the only one. Although the first implementations of Eiffel were
available on Unix systems only, this will soon be a situation of the past.
With respect to C, I hope that when I am sixty-four
(``Will you still love C...'') Mr. Weiner and I will be the only ones to 
remember that language - giving us something to talk about.

In 1990, of course, we should avoid a convention that would be
gravely incompatible with those of Unix or C. This is not
the case with the exclamation mark, which in fact is used by
various Unix tools in widely incompatible ways (see UUCP addressing,
C-shell conventions, Vi commands etc.).  

2. The word ``international'' as used in Mr. Weiner's message
(``international programmers'') corresponds
to common US usage, where it means ``non-US'' (as in ``International
Sales Office''). Eiffel is neither an American programming language
nor a non-American programming language. In fact, I would like it to
be culturally as neutral as possible. This does not mean totally neutral
(for example, Eiffel keywords are borrowed from English, and no provision
has been made so far for non-European alphabets), but does
mean that we must give due consideration to various countries,
in the more generally accepted sense of the word ``international''.

In the original design of Eiffel, not enough attention was paid to the
problems raised by non-US keyboards. Erland Sommarskog rightly castigated
me on this point and in the first message under discussion I tried to come
up with a better solution. Although I personally manage to work with
US keyboards even when I am abroad, I believe that other Eiffel
users deserve better than ``why don't we stick
with standard [i.e. US] usage and let "international" programmers use some
special character-mapping file''. Why should the life of Eiffel
programmers in one particular country be easier than the life of Eiffel
programmers in all others if, with a little more thought and
consideration, we can make life equally easy for programmers
all over the world?

3. I am not familiar with the work done by Unix International with
respect to international character sets. In any case, the argument that
backslashes are good enough for that particular organization does not
carry much weight. First, this particular use of the word ``international''
appears to me similar to the use of ``world'' in ``world series''.
[For non-American readers, this is a sports event which involves Canadian
teams, and possibly a few Mexican ones.] Second, I read some time ago in
the journal Sun Technology a presentation of Open Look, the User Interface
standard which, unless I am mistaken, is endorsed by Unix International.
I was struck to see the specification that all sizes in Open Look must be
expressed in avoirdupoids units (inches etc.). Given that only five
or so countries in the world, of which the only ones that I recall are
the US, Liberia and Burma, have not switched to the metric system,
this (perhaps justified) decision did not seem to me at the time to be
the best possible testimony to its sponsors' ``international'' mindset.

4. I sincerely hope the above will not trigger any flames.
The only question under discussion is a reasonable degree of
fairness to various cultural and linguistic backgrounds.
The character set of Eiffel is not a matter of state (remember, though,
the dispatch of Ems, whose improper phrasing triggered one of the
major war of modern times!), but we might just as well get it right and fair.

5. The technique suggested in my first message (with exclamation mark
as special character) may not be the best possible one. For reasons
demontrasted by Mr. Sommarskog, however, any technique using the backslash
is inadequate.  It may well be that some other convention (perhaps not
using any special characters at all) supersedes both and will win the
enthusiasm of Eiffel programmers worldwide. Unfortunately, I
haven't seen anything better than the exclamation mark. If someone comes
up with a better solution, I will be glad to embrace it.

6. This suggests a last observation, which also applies to other recent
messages posted on comp.lang.eiffel with respect to the language's
evolution. My deadline for submitting the camera-ready copy of the book
``Eiffel: The Language'' to Prentice-Hall is February 20. It may be hoped
that after that publication no deep change will need to be made to the
core of the language. The recent message series was meant to obtain the
feedback of the Eiffel community (and other interested observers) on the
few proposed changes and extensions. The quality of that feedback, both
posted and mailed, has been extremely gratifying, and clearly the process
is not over. I apologize for not being able to respond to all articles and
personal messages; every argument, including those with which I
disagreed in the end, has been carefully studied and weighed.
Thank you very much for all that help.

-- 
-- Bertrand Meyer
bertrand@eiffel.com