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.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: was Ada 83 in fact object oriented ? Date: Fri, 25 Sep 2015 14:17:06 +0200 Organization: cbb software GmbH Message-ID: <16p0dlo8tlxq7.v4bq6iqoe9qb$.dlg@40tude.net> References: <1m1z02fnyec2o.wyt86jotmw92.dlg@40tude.net> Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: jSS3it0g+GyWYSMU5pi+5g.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit X-Complaints-To: abuse@aioe.org User-Agent: 40tude_Dialog/2.0.15.1 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:27826 Date: 2015-09-25T14:17:06+02:00 List-Id: On Fri, 25 Sep 2015 13:04:54 +0200, J-P. Rosen wrote: > Le 25/09/2015 10:43, Dmitry A. Kazakov a écrit : >> Another point is that inheritance is an operation that influences the >> class. You create a new member of the existing class per inheritance. >> Composition is useless for maintaining classes. No wonder, it is not >> considered OO. > > I fully agree that inheritance is necessary to classification. But you > implicitely take it for granted that objects are necessarily organized > into classes. Yes, but AFAIK unorganized design is called "object-based." > I argue that you can create good objects, as abstractions of objects of > the real world, with proper encapsulation, without classification. > Classification is a way of organizing objects, but not the only one. I'd say classification is a way of creating reusable and safer code. Reusability and safety comes from compiler-assisted code adjustments and sematic checks, which are not 100%, but still 100% more than with traditional cut'n'paste approach. Generics too, are all about classes and serve same purpose of reuse. Though generic classes are inferior because may have no objects. Classes are better engineering because they encourage the programmer to do up-front design of types, semantics of their operations and the properties shared by all instances, which eliminates a lot of ad hocery, at least in theory. Without classes reuse is limited to subprograms operating single type. You can reuse "+" for different Integer values, but not for other additive objects. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de