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