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=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,a270a1fc28d4f812 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2002-06-24 13:03:59 PST Path: archiver1.google.com!postnews1.google.com!not-for-mail From: kcline17@hotmail.com (Kevin Cline) Newsgroups: comp.lang.ada Subject: Re: OOD in Ada? Date: 24 Jun 2002 13:03:58 -0700 Organization: http://groups.google.com/ Message-ID: References: <3d135676$0$8511$cc9e4d1f@news.dial.pipex.com> NNTP-Posting-Host: 192.76.70.227 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Trace: posting.google.com 1024949039 12649 127.0.0.1 (24 Jun 2002 20:03:59 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: 24 Jun 2002 20:03:59 GMT Xref: archiver1.google.com comp.lang.ada:26670 Date: 2002-06-24T20:03:59+00:00 List-Id: "David Crocker" wrote in message news:<3d135676$0$8511$cc9e4d1f@news.dial.pipex.com>... > I know that Ada95 tries to support O-O development, but from my perspective > as an OO developer but Ada novice, it appears to me that any attempt to > implement a large OO design in Ada will run into the following problems: > > 1. The infamous "withing" problem (i.e. it is not possible to declare 2 > classes A and B, each in its own package, such that A has a method taking a > paremeter of type "access B", and B has a method with a parameter of type > "access A"); It's possible to do this in C++ but it's seldom a good idea. Instead one should declare all mutually dependent classes in a single header file, and implement them in a single source file. The Java requirement of a separate file for each class forces one to physically separate classes that aren't really separable. Excessive inter-class dependencies make many large OO programs almost unmaintainable. > > 2. The lack of a "dot" notation (or anything similar) for calling a member > method, making the code hard to read and hard to determine where dynamic > binding may be taking place. The C++ community is now questioning the value of the "dot" notation for calling member functions. Having two different function call notations makes generic programming more difficult.