comp.lang.ada
 help / color / mirror / Atom feed
From: donh@syd.csa.com.au (Don Harrison)
Subject: Re: The disturbing myth of Eiffel portability
Date: 1996/11/29
Date: 1996-11-29T00:00:00+00:00	[thread overview]
Message-ID: <E1MEDL.BA6@syd.csa.com.au> (raw)
In-Reply-To: yf33ext4nug.fsf@sabi.demon.co.uk


Piercarlo Grandi writes:

:>>> "donh" == Don Harrison <donh@syd.csa.com.au> writes:
:
:donh> I think you'll find that when people refer to languages without
:donh> stating which version, they are typically referring to the current
:donh> incarnation.
:
:The incarnation of the language or that of the language's name? For it
:is often the case that the same name is used to label rather different
:languages, not more or less minor revisions of the same language.

The language. Yes, this only applies to languages with a single line of
descendants (eg. Ada, Eiffel). Where the evolutionary tree branches, it
only makes sense to speak of specific variants. 

[As an aside, it's tempting to suggest that the quality of an original 
language is inversely proportional to the number of branches from it (not 
necessarily with the same name) but this is overly simplistic. A single 
evolutionary path may indicate that the original was so good that there were 
few 'improvements' that could be made or it may have been that the language 
definition was tightly controlled].

:The obvious example is ``Algol'', where ALGOL 60 and ALGOL 68 are rather
:different. 

Yes, that's why "Algol 68" is used for ALGOL 68 and "Algol" is used to mean
ALGOL 60.

:But the difficulty exists even when the current language is a
:a greatly expanded superset of the previous language, but the name has
:not been changed. Both cases are somewhat common, and the Eiffel-Eiffel
:3 distinction is one of many example.
:
:Therefore the assumption above involves considerable difficulties.

Indeed.

:When one says ``C++'', which version of C++ is implied? The one with or
:without namespaces? The one with or without exception handling? And when
:one says ``Smalltalk''? And which version of ``FORTRAN'' is current? And
:nnwhen someone writes ``Ada is an OO language'', one should understand
:that phrase wrt Ada [83] or Ada 95? 

In the case of "Ada", they mean Ada95.

:What about Pascal? Pascal (either
:1st or 2nd edition), or ISO Pascal? Is ``C++'' the current ``C'', as it
:incldues the latter as a subset?

Hasn't C evolved separately? This is the real issue, IMO. BTW, I thought 
C++ *wasn't* a superset of C - at least, that's what Wiener & Pinson says.

:For Eiffel at least the situation is clear; there are three languages,
:Eiffel (which was never called Eiffel 1 AFAIK, even if occasionally the
:name is used, even by myself), Eiffel 2 and Eiffel 3.

Few languages would have a version 1 as their designers probably thought
at the time they had created something perfect. :)   

:Eiffel and Eiffel 2 are fairly similar, so not much is lost by using the
:same name for both; but Eiffel 3 is so different from Eiffel (being a
:greatly "expanded" :-) superset, and the things in the superset being so
:dramatically different in philosophy) that I think using the name of the
:latter to indicate the former is a bit of a strain (similarly for
:Sather, for which the version number is even more essential, as it has
:been for quite a while a research language, and has undergone even more
:frequent evolution).

While you may be strictly correct in using the term "Eiffel" for the original
language, everyone else uses it to mean Eiffel 3. Words in natural languages 
change their meanings over time, typically through popular misuse. Language 
names are no different in this regard, so "Eiffel" today means Eiffel 3 whereas 
in 1985, it meant the original Eiffel. Using "Eiffel" to mean the original 
Eiffel (as defined in OOSC?) will only cause confusion, IMO.

:Consider as an analogy the label ``Modula'': yes, Modula, Modula 2 and
:Modula 3 are somewhat similar languages, but Modula 3 is rather
:different from the other two (which are not compatible either way); what
:should one understand when one writes ``Modula''? The current
:``version''? Which one?

Modula is usually understood to mean the original language called "Modula" 
and its derivatives are specifically named.

:donh> They will typically only mention a specific version if
:donh> distinguishing between them (usually to update their
:donh> knowledge).
:
:But Eiffel has got no version number -- Eiffel 2 and Eiffel 3 have got
:it. You may have not noticed that in my article I was careful to Use
:Eiffel where I meant Eiffel, and Eiffel 3 where I meant Eiffel 3, as
:evident in the contrast in two consecutive paragraphs:

Yes, you expressed yourself with admirable precision. :)

:donh> In the case of "Eiffel", they usually mean Eiffel 3.
:
:This may well be the case, but it creates confusion...

Only if you use the term archaically. :)

:donh> If they mean OOSC Eiffel,
:
:But there is no such thing as OOSC Eiffel: what is described in OOSC is
:the language called "Eiffel", period, with no qualifiers whatsoever

That may well be. However, everyone will know what you are talking about but ...

:there are now _two_ ``OOSC Eiffels'': I haven't yet seen the
:second edition of OOSC, but I imagine it will no longer be using Eiffel
:but Eiffel 3 for examples).

No doubt, but I expect the term "Eiffel" will be used to mean the current 
version of the language.

:  I personally regard the title of Betrand Meyer's book "Eiffel the
:  language" as a bit of a misrepresentation: for the vast changes
:  between Eiffel and Eiffel 3 reflect some negative experience with
:  Eiffel (and Eiffel 2), and blurring the distinction between Eiffel 3
:  and Eiffel seems a way to sweep such past problems under the carpet,
:  as if there were a continuity that is not quite there. 

Well, there is continuity in that the term "Eiffel" has been used the whole
time to indicate the current version of a progressively improving language.

:There are vast
:  differences between the various ``C++''s too, and I cringe when people
:  speak of ``C++'' as if it were one and not at least four successive
:  rather different languages, but none imply regrets such as those
:  evident in the evolution from Eiffel to Eiffel 3.

Sadly, we humans are less than perfect. :)

:I personally try to use typographical conventions to indicate use of the
:specific vs. the generic term; for example Eiffel denotes the language
:called "Eiffel", and ``Eiffel'' means any of the languages called
:"Eiffel", "Eiffel 2", "Eiffel 3".

Okay, we'll know what you mean.

:I am especially keen on using such a convention when discussing
:``Smalltalk'', in part because there are so many different and often
:incompatible languages whose name includes the word "Smalltalk", and
:also because there is _no_ language called "Smalltalk" (while there is
:one called "Eiffel"), as the original ``Smalltalk''s were all, wisely,
:tagged with names of the form "Smalltalk-<year>".

Yes, that was helpful.

:donh> they are graciously informed that some things have changed since
:donh> then. :)
:
:Perhaps a better assumption would be to use the language's own full name
:(ALGOL 60 instead of Algol), 

Yes, that would help.

:or use some typographical convention to
:indicate ``fuzzy'' names, or simply to assume that the version, if
:missing is the one, if any, for which the phrase in which it appears
:makes sense; for exmaple something like "C++ does not have multiple
:inheritance" should be taken to refer to "C++ 1.0".

Yes, reading in context is always beneficial.


Don.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Don Harrison             donh@syd.csa.com.au






  reply	other threads:[~1996-11-29  0:00 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-11-15  0:00 The disturbing myth of Eiffel portability The Rt Rev'd Colin James III, KOTM 1/96
1996-11-17  0:00 ` Eoin Woods
1996-11-17  0:00 ` The Rt Rev'd Colin James III, KOTM 1/96
1996-11-18  0:00   ` James Youngman
1996-11-20  0:00     ` Piercarlo Grandi
1996-11-21  0:00       ` Paul Johnson
1996-11-27  0:00         ` Piercarlo Grandi
1996-11-28  0:00           ` Don Harrison
1996-11-29  0:00             ` Piercarlo Grandi
1996-11-29  0:00               ` Don Harrison [this message]
1996-11-30  0:00                 ` Piercarlo Grandi
1996-12-01  0:00                 ` Jon S Anthony
1996-12-02  0:00                   ` Piercarlo Grandi
1996-11-29  0:00             ` Piercarlo Grandi
1996-11-29  0:00               ` Robert Dewar
1996-11-29  0:00               ` Robert Dewar
1996-11-20  0:00   ` Jeff Miller
1996-11-20  0:00     ` Piercarlo Grandi
1996-11-17  0:00 ` Lawrence Kirby
1996-11-18  0:00 ` Stephen J Bevan
1996-11-19  0:00 ` Kaz Kylheku
1996-11-19  0:00   ` Robert Dewar
1996-11-20  0:00     ` Matt Kennel
1996-11-22  0:00       ` Robert Dewar
1996-11-20  0:00     ` Larry Kilgallen
1996-11-21  0:00       ` Robert Dewar
1996-11-22  0:00         ` Larry Kilgallen
1996-11-22  0:00           ` Robert Dewar
1996-12-01  0:00             ` Graham C. Hughes
1996-12-01  0:00               ` Robert Dewar
1996-12-02  0:00                 ` Brian R. Hanson
1996-12-06  0:00                   ` Robert Dewar
1996-12-09  0:00                     ` Brian R. Hanson
1996-11-26  0:00         ` Van Snyder
1996-11-22  0:00       ` Ken Garlington
1996-11-25  0:00         ` Robert Dewar
1996-11-21  0:00     ` Keith Thompson
1996-11-21  0:00       ` Robert Dewar
1996-11-22  0:00       ` Norman H. Cohen
1996-11-24  0:00       ` Lawrence Kirby
1996-11-21  0:00     ` Francois Labreque
1996-11-21  0:00       ` Kaz Kylheku
1996-11-24  0:00       ` Robert Dewar
1996-11-20  0:00   ` James Mansion
1996-11-20  0:00     ` Kaz Kylheku
1996-11-25  0:00   ` Joachim Durchholz
1996-11-26  0:00     ` Lawrence Kirby
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox