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/27
Date: 1996-11-27T00:00:00+00:00	[thread overview]
Message-ID: <yf3k9r8xk5l.fsf@sabi.demon.co.uk> (raw)
In-Reply-To: 57172k$325@miranda.gmrc.gecm.com


>>> "paul.johnson" == Paul Johnson <paul.johnson@gecm.com> writes:

paul.johnson> In article <vwj20dodc99.fsf@osfb.aber.ac.uk>,
paul.johnson> pcg@aber.ac.uk says...

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

paul.johnson> Syntax first: I think you will find that the built-in
paul.johnson> Eiffel data types are on a par with the user-defined ones:
paul.johnson> unlike C++ things like integer and array are defined as
paul.johnson> classes.

Well, only in Eiffel 3, which is a rather different language from Eiffel
(despite backwards similarity); and even in Eiffel 3, they are a bit
more special than user defined types.

  BTW, it's clear that different people mean different things with
  ``Eiffel''; the various versions of the language are rather
  different. The same applies to ``Ada'', ``C'', ``FORTRAN'' and also to
  ``C++'', where one never really knows _which_ version of the language
  is being discussed, for while for example for Ada and C and FORTRAN
  there is a customary indication of version (Ada 83 and Ada 95, C and
  ANSI C, FORTRAN 66, FORTRAN 77, ...) I have very rarely seen any usage
  of the C++ 1.0, C++ 2.x, C++ 3.x or C++ draft ISO @ [date] labels. In
  part this is because C++ implementations often implement bits from
  several versions...

What has most impressed me in the changes between Eiffel and Eiffel 3 is
the obvious change of many important design decisions, and the giving of
much greater importance to aspects that have always ben central to the
design of C++ (there are many examples: from 'expanded' to 'bit N').

If Eiffel had been designed from the start as a more C/C++ like
language, the ugliness of certain aspects of Eiffel 3 could have been
avoided...

paul.Johnson> Efficiency: see the thread about benchmarks.  Where
paul.johnson> exactly do you think that user defined data types lose
paul.johnson> performance?

Memory management, for like in SIMULA, they ``must'' be heap allocated,
and accessed indirectly via pointers/references (and without something
like the 'WITH' construct of Pascal or block prefixing as in SIMULA).

In Eiffel 3 they _need not_ be heap allocated; but then there are other
aspects that more or less mandate the existence of a system builder,
which is indeed duly provided (certain overheads can only be avoided if
a program-wide optimization is done), but which causes its own
difficulties (convenience more than performance).

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

paul.johnson> More importantly, it has allowed the builtin data types to
paul.johnson> become part of the class hierarchy.

Well, this is elegant indeed (except for abominations like 'NONE', which
was justly criticized in the discussion of Eiffel in OOSC); but I think
that the problem with having all non-primitive values accessed by
reference and in the heap was a far bigger problem as to the
practicality of using Eiffel than the inability to have basic types part
of the class hierarchy.




  reply	other threads:[~1996-11-27  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 ` 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 [this message]
1996-11-28  0:00           ` Don Harrison
1996-11-29  0:00             ` Piercarlo Grandi
1996-11-29  0:00               ` Robert Dewar
1996-11-29  0:00               ` Robert Dewar
1996-11-29  0:00             ` Piercarlo Grandi
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-20  0:00   ` Jeff Miller
1996-11-20  0:00     ` Piercarlo Grandi
1996-11-17  0:00 ` Eoin Woods
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