comp.lang.ada
 help / color / mirror / Atom feed
From: pcg@aber.ac.uk (Piercarlo Grandi)
Subject: Re: The disturbing myth of Eiffel portability
Date: 1996/11/20
Date: 1996-11-20T00:00:00+00:00	[thread overview]
Message-ID: <vwj20dodc99.fsf@osfb.aber.ac.uk> (raw)
In-Reply-To: 56q0kp$ma0@halon.vggas.com


>>> "JYoungman" == James Youngman <JYoungman@vggas.com> writes:

JYoungman> In article <32b09c4c.252526073@news2.ibm.net>,
JYoungman> cjames3@ibm.net says...

cjames> All new development in US banks with European branches is in C++
cjames> back end and many front ends (none in Eiffel that I know of).

This does not mean that there are _no_ banks using Eiffel...

cjames> This is partly due to C with its silly pointers not scaling well
cjames> and mostly due to floating point problems at run time in C.

JYoungman> The runtime behaviour of C++ has just the same pros and cons
JYoungman> as that of C.

Those that have some idea of what C++ is about know better. It is very
easy to define a new data type, say 'Currency', in C++, and implement
precise arithmetic for it which is efficient at runtime, and which does
not suffer from the variable precision of the builting 'float' type.

In C one has the relatively unpleasant choice of either using the
builtin floating point datatype, whose variable precision is not
acceptable when dealing with (potentially large) sums of money (at least
without expending considerable analytical effort in range analysis), or
using a non encapsulated datatype and a library of external, non
inlined, functions.

This is both less convenient and (usually) less efficient than in C++;
for while C++ has inline functions, neither C nor ANSI C have them, and
using macros is not quite the same thing.

Indeed one of the _major_ design goals of C++, according to its authors,
is to allow the programmer to define new datatypes that can be used
almost as (e.g. wrt performance and syntax) a builtin one; this is
indeed possible thanks to the ability to overload operators and
functions and to suggest that the compiler inline them, and thanks to
the abiluty to encapsulate the representation of those user defined
datatypes (including ``intelligent'' pointers, as described above).

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

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

JYoungman> Is that your hat you are talking out of?  Funny place to wear
JYoungman> it...

Please keep such innuendo to yourself. Even if 'cjames3' occasionally
forgets it himself, this is in theory a technical, if informal,
newsgroup.





  reply	other threads:[~1996-11-20  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 [this message]
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
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