comp.lang.ada
 help / color / mirror / Atom feed
From: "J-P. Rosen" <rosen@adalog.fr>
Subject: Re: was Ada 83 in fact object oriented ?
Date: Fri, 25 Sep 2015 14:44:24 +0200
Date: 2015-09-25T14:44:24+02:00	[thread overview]
Message-ID: <mu3ffk$s1c$1@dont-email.me> (raw)
In-Reply-To: <16p0dlo8tlxq7.v4bq6iqoe9qb$.dlg@40tude.net>

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


  reply	other threads:[~2015-09-25 12:44 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-24 22:23 was Ada 83 in fact object oriented ? halfmaddad
2015-09-24 23:47 ` Jeffrey R. Carter
2015-09-25  2:30   ` halfmaddad
2015-09-25  8:11   ` Dmitry A. Kazakov
2015-09-25  8:30     ` J-P. Rosen
2015-09-25  8:47       ` Dmitry A. Kazakov
2015-09-25  8:03 ` Dmitry A. Kazakov
2015-09-25  8:14 ` J-P. Rosen
2015-09-25  8:43   ` Dmitry A. Kazakov
2015-09-25 11:04     ` J-P. Rosen
2015-09-25 12:17       ` Dmitry A. Kazakov
2015-09-25 12:44         ` J-P. Rosen [this message]
2015-09-25 15:27           ` Dmitry A. Kazakov
2015-09-25 12:44   ` halfmaddad
2015-09-25 16:24   ` Pascal Obry
2015-09-25 20:32   ` Jeffrey R. Carter
2015-10-05 12:27     ` vincent.diemunsch
2015-10-01 13:46 ` Paul Colin de Gloucester
2015-10-05 12:12   ` Vincent
2015-10-05 18:28     ` Jeffrey R. Carter
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox