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


>>> "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 obvious example is ``Algol'', where ALGOL 60 and ALGOL 68 are rather
different. 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.

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? 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?

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.

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).

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?

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:

  piercarl> In this respect Eiffel is rather less attractive; user
  piercarl> defined Eiffel datatypes are not quite on a par with builtin
  piercarl> ones either as to syntax (which IMNHO is not important) or
  piercarl> as to performance (which matters for very fine granularity
  piercarl> datatypes).

  piercarl>   It is rather significant IMNHO that Eiffel 3 has now
  piercarl>   expanded datatypes, which however small a detail, allows
  piercarl>   for _considerable_ improvements in performance, in
  piercarl>   particular asd to garbage collection.

donh> In the case of "Eiffel", they usually mean Eiffel 3.

This may well be the case, but it creates confusion...

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
(also, 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).

  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. 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.

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".

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>".

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), 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".




  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 ` Lawrence Kirby
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 [this message]
1996-11-29  0:00               ` Don Harrison
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-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     ` 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-20  0:00     ` Matt Kennel
1996-11-22  0:00       ` Robert Dewar
1996-11-21  0:00     ` Francois Labreque
1996-11-21  0:00       ` Kaz Kylheku
1996-11-24  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-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