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.
next prev parent 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