From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.7 required=5.0 tests=BAYES_00,INVALID_DATE, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!elroy.jpl.nasa.gov!swrinde!zaphod.mps.ohio-state.edu!wuarchive!uunet!nuchat!buster!brain.UUCP!chuck From: chuck@brain.UUCP (Chuck Shotton) Newsgroups: comp.lang.ada Subject: Re: Ada vs C++, Franz Lisp to the rescue? Message-ID: <0D010010.i1lndi@brain.UUCP> Date: 30 May 91 18:25:11 GMT Reply-To: chuck@brain.UUCP Organization: BIAP Systems X-Mailer: uAccess - Mac Release: 1.0.4a List-Id: In article <1991May30.004144.24252@netcom.COM>, jls@netcom.COM (Jim Showalter) writes: > >I won't argue the point that Ada is far superior when it comes to large system > >development. This is a fact, plain and simple, and C++ cannot hold a candle > >to Ada's abilities to decompose a problem into managable pieces and insure > >the consistency between them. However, Ada is not all things to all programming > >tasks, and one of the things it isn't is an object oriented programming > >language. > > >From the above paragraph, we have these two statements: > > 1) Ada is a superior language for engineering large complex systems. > 2) Ada is not particularly supportive of OOP. > > These two statements lead to the following conclusion: > > 3) OOP is largely irrelevant when it comes to engineering large complex systems. > > Now, far be it from me to actually MAKE this claim [;-)], I'm merely > pointing out that it is the inevitable subtext of the above paragraph. > First, the only point being made in 1 and 2 above is that Ada is well suited to supporting the decomposition of systems into manageable pieces, and it doesn't provide the same level of SYNTACTIC support for OOP as other professed OOP languages. Don't put words in my mouth. The third conclusion is simply a faulty conclusion from the intent of the first 2. I'd like YOU to explain to netland how to support dynamic inheritance at runtime in Ada without resorting to manually-supported coding conventions. I've had a direct hand in the management, design, and implementation of about 250,000 lines of Ada over the past 2 or 3 years on NASA's SSE contract. We used OOD techniques such as Buhr diagraming, etc. and coded according to the design. BUT THAT DOESN'T MAKE THE CODE OBJECT ORIENTED. The whole point of the comparison between C++ and Ada hinges on the semantic interpretation of the term "object-oriented." To most Ada-literate individuals, "object-oriented" refers to the concepts of information hiding and specific design methodologies. To others (C++, academia, etc.) "object-oriented" connotes message passing, inheritance, dynamic binding, methods, classes, etc. Ada does NOT provide direct support via language constructs and run-time behavior to support all of these concepts. The burden is placed on the programmer to implement "message passing" and there is no way to safely (consistenly) implement dynamic binding. Rather than degenerate into a "mine's bigger than yours" comparison of two vastly different languages (and programming paradigms), it would be more constructive to discuss how to implement TRUE object-oriented features within the current limitations of Ada. I'd be interested in hearing suggestions for supporting the aforementioned list of "alleged" object oriented language features using plain vanilla Ada. This could actually be useful on some real projects. ----------------------------------------------------------------------- Chuck Shotton Internet: cshotton@girch1.med.uth.tmc.edu