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 autolearn=unavailable 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!.POSTED!not-for-mail From: "J-P. Rosen" Newsgroups: comp.lang.ada Subject: Re: was Ada 83 in fact object oriented ? Date: Fri, 25 Sep 2015 14:44:24 +0200 Organization: A noiseless patient Spider Message-ID: References: <1m1z02fnyec2o.wyt86jotmw92.dlg@40tude.net> <16p0dlo8tlxq7.v4bq6iqoe9qb$.dlg@40tude.net> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit Injection-Date: Fri, 25 Sep 2015 12:42:28 +0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="45bffd6a911624777cad79aac3181090"; logging-data="28716"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18yfmwx5ebzexEXu//effxK" User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 In-Reply-To: <16p0dlo8tlxq7.v4bq6iqoe9qb$.dlg@40tude.net> Cancel-Lock: sha1:4Nx/IUN132rbnRuOfplrbsmeQF0= X-Enigmail-Draft-Status: N1110 Xref: news.eternal-september.org comp.lang.ada:27827 Date: 2015-09-25T14:44:24+02:00 List-Id: Le 25/09/2015 14:17, Dmitry A. Kazakov a écrit : > On Fri, 25 Sep 2015 13:04:54 +0200, J-P. Rosen wrote: > >> 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." Huh? The opposite of "organized into classes" is not "unorganized", it is "organized otherwise". Like for example "organized into abstraction layers", wich is what composition is about. "object based" is a term invented by proponents of classification who were forced to recognize that there was something OO in composition, but wanted to keep the magic term "object oriented" for classification only. [...] > 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. I see nothing in what you say that implies classification (although I agree it relates to object orientation). > Without classes reuse is limited to subprograms operating single type. You > can reuse "+" for different Integer values, but not for other additive > objects. > Definitely not. You reuse all your components a lot! This view comes from the idea that to develop new software, you modify existing components. Inheritance makes it easy to develop new modules where you change only the parts that are different from the original ones. With composition, you have ready-to-use software components. You make a new objects by assembling them in a different way. To make a comparison: imagine you need a 105KOhms resistor. With inheritance, you take an existing 100KOhms resistor, and make a little scratch in it to adjust the resistance. With composition, you take a 100Kohms resistor, a 5Kohms resistor, put them serial. Both approaches are different kinds of reuse. -- J-P. Rosen Adalog 2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX Tel: +33 1 45 29 21 52, Fax: +33 1 45 29 25 00 http://www.adalog.fr