comp.lang.ada
 help / color / mirror / Atom feed
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
 




  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