From: Richard D Riehle <laoXhai@ix.netcom.com>
Subject: Re: Ada OO Mechanism
Date: 1999/06/01
Date: 1999-05-31T19:54:55-07:00 [thread overview]
Message-ID: <7ivi1v$6t6@sjx-ixn10.ix.netcom.com> (raw)
In-Reply-To: 7ircia$ued@drn.newsguy.com
In article <7ircia$ued@drn.newsguy.com>,
chris@nospam wrote:
>Today I saw a book on modula-3.
>
>I think Ada OO should have been designed as modula-3 OO is.
Modula-3 has some interesting ideas that could contribute to
future versions of Ada. However, Modula-3, in its effort to
keep the language simple, falls a little short of the strong
typing we expect of a well-designed Ada 95 program.
>In Modula-3, you have a modula, which is same as an Ada package.
Well, actually, not the same. There are some significant differences.
Ada has a private part for the equivalent of an INTERFACE, and that
increases the flexibility of the type model in terms of separate
compilation of components of an implementation. One may reasonably
criticize this feature as being excessively complex, but it does
increase one's options in developing software with Ada.
On the other hand, those added options do make the development of
compilers more complex. The trade-off between compiler complexity
and application programmer options raises issues that will not
be easily agreed upon.
>but also, you have what is called an OBJECT, (which looked
>like a RECORD), which contains DATA part, and METHODS part.
While the Modula-3 approach to this is a little safer than
the equivalent in C++, it still has weaknesses. For example,
if I understand correctly, there are still cases in which the
compiler cannot determine if certain kinds of assignments are
correct, and these can cause run-time faults.
>Inside a modula, you can declare an OBJECT.
>
>So, here we have a language, which I thought was very similar to
>Ada, but used the familiar class like construct for the OO type.
Once again, we are seduced by the apparent simplicity of the
type <=> module <=> class (OBJECT)
On the surface, this simplicity is attractive. In practice, it
leads to greater complexity than one might have expected. This
is certainly the case in C++. Although I have not written Modula-3
programs, my reading of the language description makes me suspect that
some of the same problems from C++ will manifest themselves.
>I have no idea why Ada did not do it the same way. I wonder if when
>Ada95 OO was designed, if modula-3 was around?
The designers of Ada 95 knew about Modula-3. The philosophy of the
two languages is different. Those who favor Modula-3 (I know some
of them) tend to believe Ada is too full of features and favor a
smaller language definition. For example, one author says "The
rules associated with Ada generics are too complicated for our
taste." However, it is that set of rules that helps give Ada
is unparalleled power in designing compile-time checked, generic
reusable components.
>I liked the way modula-3 did it. I think I am going to learn more
>about that language. Too bad it is not a very much used language.
Please do learn Modula-3 as thoroughly as possible. Then return to
your assessment of Ada 95. You may find yourself more charitable
toward Ada.
The design of Ada was not a process of overlooking other language designs.
It included careful analysis of what other languages had to offer. In
fact, this one of the benefits of Ada 95 following the design of other
languages. The architects and reviewers of Ada 95 had the opportunity to
evaluate how well certain features worked in other languages and the
option to incorporate those that seemed appropriate into the Ada
language design.
The decision to design Ada 95 as it is designed was a deliberate choice,
for well-taken technical reasons. One may disagree with those technical
reasons, but they are as valid, in the end, as other choices that might
have been made.
Richard Riehle
richard@adaworks.com
http://www.adaworks.com
next prev parent reply other threads:[~1999-06-01 0:00 UTC|newest]
Thread overview: 116+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-05-20 0:00 Ada OO Mechanism Shawn M. Root
1999-05-20 0:00 ` Samuel Mize
1999-05-20 0:00 ` David Botton
1999-05-20 0:00 ` Samuel Mize
1999-05-20 0:00 ` David Botton
1999-05-24 0:00 ` Hyman Rosen
1999-05-24 0:00 ` Robert Dewar
1999-05-24 0:00 ` Hyman Rosen
1999-05-24 0:00 ` Mike
1999-05-25 0:00 ` Robert Dewar
1999-05-24 0:00 ` David Starner
1999-05-24 0:00 ` bob
1999-05-24 0:00 ` David Starner
1999-05-25 0:00 ` Ole-Hjalmar Kristensen
1999-05-25 0:00 ` Florian Weimer
1999-05-25 0:00 ` Mark A Biggar
1999-05-25 0:00 ` Hyman Rosen
1999-05-25 0:00 ` Samuel Mize
1999-05-25 0:00 ` Hyman Rosen
1999-05-25 0:00 ` Samuel Mize
1999-05-25 0:00 ` Chris
1999-05-25 0:00 ` David Botton
1999-05-27 0:00 ` Aidan Skinner
1999-05-27 0:00 ` Gautier
1999-05-27 0:00 ` Samuel Mize
1999-05-25 0:00 ` Brian Rogoff
1999-05-25 0:00 ` Jim
1999-05-26 0:00 ` Robert Dewar
1999-05-26 0:00 ` Brian Rogoff
1999-05-25 0:00 ` Richard D Riehle
1999-05-25 0:00 ` Hyman Rosen
1999-05-26 0:00 ` Ray Blaak
1999-05-26 0:00 ` Hyman Rosen
1999-05-26 0:00 ` Richard D Riehle
1999-05-26 0:00 ` Hyman Rosen
1999-05-27 0:00 ` Richard D Riehle
1999-06-05 0:00 ` Matthew Heaney
1999-06-07 0:00 ` Hyman Rosen
1999-05-28 0:00 ` Laurent Guerby
1999-06-05 0:00 ` Matthew Heaney
1999-06-07 0:00 ` Hyman Rosen
1999-06-08 0:00 ` Robert Dewar
1999-06-08 0:00 ` Stanley R. Allen
1999-06-08 0:00 ` Markus Kuhn
1999-06-08 0:00 ` Stanley R. Allen
1999-06-08 0:00 ` Matthew Heaney
1999-06-08 0:00 ` Hyman Rosen
1999-06-08 0:00 ` Samuel Mize
1999-06-08 0:00 ` Hyman Rosen
[not found] ` <t7zp2sr6yf.fsf@calumny.jyacc.c <t7emjmmx8w.fsf@calumny.jyacc.com>
1999-06-08 0:00 ` Larry Kilgallen
1999-06-08 0:00 ` Hyman Rosen
1999-06-08 0:00 ` Tucker Taft
1999-06-08 0:00 ` Brian Rogoff
1999-06-09 0:00 ` Robert Dewar
[not found] ` < <375E92CB.27850620@averstar.com>
1999-06-09 0:00 ` Brian Rogoff
1999-06-14 0:00 ` Robert A Duff
1999-06-09 0:00 ` Tucker Taft
1999-06-09 0:00 ` Matthew Heaney
1999-06-09 0:00 ` Samuel Mize
[not found] ` <t7zp2sr6yf.fsf@calumny.jyacc.c <t7r9nmz8ou.fsf@calumny.jyacc.com>
1999-06-08 0:00 ` Larry Kilgallen
1999-06-08 0:00 ` Hyman Rosen
1999-06-14 0:00 ` Robert A Duff
[not found] ` <t7zp2sr6yf.fsf@calumny.jyacc.c <375d9a3d.e1cccc63@averstar.com>
1999-06-09 0:00 ` Larry Kilgallen
1999-06-09 0:00 ` Tucker Taft
1999-05-27 0:00 ` Samuel Mize
1999-05-27 0:00 ` Hyman Rosen
1999-05-28 0:00 ` Laurent Guerby
1999-05-28 0:00 ` Richard D Riehle
1999-05-28 0:00 ` Tom Moran
1999-05-28 0:00 ` Samuel Mize
1999-05-27 0:00 ` Samuel Mize
1999-05-27 0:00 ` Jon S Anthony
1999-05-25 0:00 ` Richard D Riehle
1999-05-25 0:00 ` David Botton
1999-05-26 0:00 ` Tom Moran
1999-05-27 0:00 ` Aidan Skinner
1999-05-28 0:00 ` Robert I. Eachus
1999-05-28 0:00 ` Brian Rogoff
1999-05-29 0:00 ` Ehud Lamm
1999-05-30 0:00 ` chris
1999-05-30 0:00 ` Harry George
1999-05-30 0:00 ` Vladimir Olensky
1999-05-31 0:00 ` Robert Dewar
1999-05-30 0:00 ` Robert Dewar
1999-05-31 0:00 ` Vladimir Olensky
1999-06-03 0:00 ` Dale Stanbrough
1999-06-02 0:00 ` mike
1999-06-03 0:00 ` Robert Dewar
1999-06-06 0:00 ` David Botton
1999-06-07 0:00 ` Robert Dewar
1999-06-01 0:00 ` Richard D Riehle [this message]
1999-06-03 0:00 ` Matthew Heaney
1999-06-03 0:00 ` Matthew Heaney
1999-05-25 0:00 ` Samuel Mize
1999-05-25 0:00 ` Hyman Rosen
1999-05-25 0:00 ` David Starner
1999-05-26 0:00 ` Ole-Hjalmar Kristensen
1999-05-26 0:00 ` Laurent Guerby
1999-05-26 0:00 ` Hyman Rosen
1999-05-28 0:00 ` Laurent Guerby
1999-06-01 0:00 ` Hyman Rosen
1999-06-03 0:00 ` Fraser Wilson
1999-06-03 0:00 ` Matthew Heaney
1999-06-03 0:00 ` Hyman Rosen
1999-05-21 0:00 ` Dale Stanbrough
1999-05-20 0:00 ` bob
1999-05-21 0:00 ` Dale Stanbrough
1999-05-21 0:00 ` Richard D Riehle
1999-05-21 0:00 ` Shawn M. Root
1999-05-21 0:00 ` Richard D Riehle
1999-05-25 0:00 ` Shawn M. Root
1999-05-21 0:00 ` Marin David Condic
1999-05-21 0:00 ` Dan Nagle
1999-05-24 0:00 ` Marin David Condic
1999-05-21 0:00 ` Steve
1999-05-25 0:00 ` Don Overheu
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox