Xref: utzoo comp.lang.c++:3928 comp.lang.eiffel:297 Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!sun-barr!ames!ucsd!hub!eiffel!bertrand From: bertrand@eiffel.UUCP (Bertrand Meyer) Newsgroups: comp.lang.c++,comp.lang.eiffel Subject: Re: Eiffel vs. C++ Message-ID: <168@eiffel.UUCP> Date: 6 Jul 89 23:45:08 GMT References: <2689@ssc-vax.UUCP> <6590138@hplsla.HP.COM> <149@eiffel.UUCP> <1559@cbnewsc.ATT.COM> Organization: Interactive Software Engineering, Santa Barbara CA Lines: 40 From <1559@cbnewsc.ATT.COM> by nevin1@cbnewsc.ATT.COM (nevin.j.liber): [Quoting from my previous message: ] > | Some care should be exercised, however, when one deals with programmers' > |current habits. For example, a new language should not use an existing > |notation in a way that confusingly departs from its accepted semantics. > |(The Eiffel assignment operator, :=, is a case in point; > |its semantics would probably have been different were it not for the fear > |of confusing Algol-Pascal-Ada programmers.) > [...] Assuming that you wanted to give the Eiffel > assignment operator different semantics than those given by > Algol/Pascal/Ada to ":=", why didn't you just pick another symbol (eg: > ".=")? Please elaborate. [Perhaps :-) would do for assignment?] :-) Actually the Eiffel convention is the same as the Pascal and Ada ones for entities of pointer/access/reference types, which is the reason for keeping the same notation. In general it seems proper to avoid inventing a new notation where there is no real semantic innovation and a widely accepted notation exists, unless there are strong arguments against that notation. (An example of the latter would be the Fortran/C use of = for assignment, which conflicts with time-honored mathematical conventions.) The language should look familiar in places where the concepts are indeed familiar. There are a number of novel ideas in Eiffel, but assignment is a quite standard concept. As one may expect, the properties of assignment in Eiffel are not identical to those of its counterparts in previous languages, but the differences do not seem big enough to warrant a totally new notation. Call it lack of courage if you will. -- Bertrand Meyer bertrand@eiffel.com