comp.lang.ada
 help / color / mirror / Atom feed
* was Ada 83 in fact object oriented ?
@ 2015-09-24 22:23 halfmaddad
  2015-09-24 23:47 ` Jeffrey R. Carter
                   ` (3 more replies)
  0 siblings, 4 replies; 20+ messages in thread
From: halfmaddad @ 2015-09-24 22:23 UTC (permalink / raw)


Hi Everyone

Not a really important post here, I was just wondering what opinions people might have about something.

OO is a huge topic but I am wondering what are the basic requirements for a language to be said to support object orientation.

Ada 83 had packages and one package could be instantiated more then one time.

Is it fair to say that basic class and methods were therefore supported? 

Do you have any examples of a language that just meets the threshold of being OO ?

Thanks for reading-Patrick

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: was Ada 83 in fact object oriented ?
  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:03 ` Dmitry A. Kazakov
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 20+ messages in thread
From: Jeffrey R. Carter @ 2015-09-24 23:47 UTC (permalink / raw)


On 09/24/2015 03:23 PM, halfmaddad@gmail.com wrote:
> 
> OO is a huge topic but I am wondering what are the basic requirements for a language to be said to support object orientation.
> 
> Ada 83 had packages and one package could be instantiated more then one time.
> 
> Is it fair to say that basic class and methods were therefore supported? 

Object orientation is a design characteristic. What is usually called
"object-oriented programming" is in fact programming by extension. There is
nothing intrinsically object oriented about it. I have seen many programs using
programming by extension that were not object oriented at all, and many
object-oriented programs that do not use programming by extension.

As someone who wrote a lot of object-oriented programs in Ada 83 I can confirm
that it is as suitable for implementing an object-oriented design as any other
language, and more so than most.

-- 
Jeff Carter
"I did not rob a bank. If I'd robbed a bank, everything
would be great. I tried to rob a bank, is what happened,
and they got me."
Take the Money and Run
139


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: was Ada 83 in fact object oriented ?
  2015-09-24 23:47 ` Jeffrey R. Carter
@ 2015-09-25  2:30   ` halfmaddad
  2015-09-25  8:11   ` Dmitry A. Kazakov
  1 sibling, 0 replies; 20+ messages in thread
From: halfmaddad @ 2015-09-25  2:30 UTC (permalink / raw)


Thanks Jeff

I hadn't heard of the phrase programming by extension.

This article discusses it:
http://www.adapower.com/adapower1/articles/extension.html

I learned something with this post already

-Patrick

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: was Ada 83 in fact object oriented ?
  2015-09-24 22:23 was Ada 83 in fact object oriented ? halfmaddad
  2015-09-24 23:47 ` Jeffrey R. Carter
@ 2015-09-25  8:03 ` Dmitry A. Kazakov
  2015-09-25  8:14 ` J-P. Rosen
  2015-10-01 13:46 ` Paul Colin de Gloucester
  3 siblings, 0 replies; 20+ messages in thread
From: Dmitry A. Kazakov @ 2015-09-25  8:03 UTC (permalink / raw)


On Thu, 24 Sep 2015 15:23:57 -0700 (PDT), halfmaddad@gmail.com wrote:

> OO is a huge topic but I am wondering what are the basic requirements for
> a language to be said to support object orientation.

It is an unsettled question.

Usually dynamic polymorphism is considered essential for an OOPL.

In Ada 95 dynamic polymorphism was represented by tagged types and
primitive operations.

Ada 83 was said "object based", but not "object oriented."
 
> Ada 83 had packages and one package could be instantiated more then one time.

You mean generic packages. That is static polymorphism, usually, it is not
considered OO.

> Is it fair to say that basic class and methods were therefore supported? 

No. Because the key difference is that with static polymorphism you cannot
have a polymorphic object.

E.g. if you have a type declared within a generic package. Then each
instance of the package produces a new type. You cannot have an object
capable to hold values (or their equivalents as strong typing requires) of
both types. Therefore, there is no run-time class. The class of all
instances exists, but not in the language. Thus the language does not make
it.

> Do you have any examples of a language that just meets the threshold of being OO ?

From above, if you have polymorphic objects, the language is OO. Bordering
cases could be ones when some types have no classes or some classes have to
explicit types etc. Considering this, all languages are probably at the
threshold.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: was Ada 83 in fact object oriented ?
  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
  1 sibling, 1 reply; 20+ messages in thread
From: Dmitry A. Kazakov @ 2015-09-25  8:11 UTC (permalink / raw)


On Thu, 24 Sep 2015 16:47:59 -0700, Jeffrey R. Carter wrote:

> Object orientation is a design characteristic. What is usually called
> "object-oriented programming" is in fact programming by extension.

Not quite. That is called OOA/D.

OO programming could happen without any analysis and no design whatsoever,
as we all know ...

Regarding extension, it is just one implementation of inheritance chosen
for its simplicity. It has issues, lots of, e.g. with substitutability,
multiple inheritance etc. A class can be built by many ways, extension is
only one of them.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: was Ada 83 in fact object oriented ?
  2015-09-24 22:23 was Ada 83 in fact object oriented ? halfmaddad
  2015-09-24 23:47 ` Jeffrey R. Carter
  2015-09-25  8:03 ` Dmitry A. Kazakov
@ 2015-09-25  8:14 ` J-P. Rosen
  2015-09-25  8:43   ` Dmitry A. Kazakov
                     ` (3 more replies)
  2015-10-01 13:46 ` Paul Colin de Gloucester
  3 siblings, 4 replies; 20+ messages in thread
From: J-P. Rosen @ 2015-09-25  8:14 UTC (permalink / raw)


Le 25/09/2015 00:23, halfmaddad@gmail.com a écrit :
> OO is a huge topic but I am wondering what are the basic requirements
> for a language to be said to support object orientation.
> 
> Ada 83 had packages and one package could be instantiated more then
> one time.
> 
> Is it fair to say that basic class and methods were therefore
> supported?
> 
> Do you have any examples of a language that just meets the threshold
> of being OO ?
One of my pet subjects...

IMHO, object orientation is about structuring your software in modules
that reflect abstractions of the objects of the model space (rather than
sequential processing, as in structured programming).

Objects can then be organized as composition of lower level objects
(programming by composition) or as hierarchies of general objects to
more specific objects. The latter require inheritance.

For some mysterious reasons, the proponents of the hierarchical method
declared that they were the only true object orientation, and
disregarded OO by composition.

As to your original question, Ada83 had excellent support for OO by
composition, but lacked direct support for inheritance.

Long ago, I wrote a paper in CACM about this topic ("what orientation
should Ada objects take"). A link is available from
http://www.adalog.fr/en/publications.html. Normally, the link (to ACM)
should allow you to download a PDF version for free, although sometimes
it does seem to require money... Maybe it depends on whether you are
logged in as ACM member. In case of problem, ask me and I can provide a
copy.

-- 
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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: was Ada 83 in fact object oriented ?
  2015-09-25  8:11   ` Dmitry A. Kazakov
@ 2015-09-25  8:30     ` J-P. Rosen
  2015-09-25  8:47       ` Dmitry A. Kazakov
  0 siblings, 1 reply; 20+ messages in thread
From: J-P. Rosen @ 2015-09-25  8:30 UTC (permalink / raw)


Le 25/09/2015 10:11, Dmitry A. Kazakov a écrit :
> Regarding extension, it is just one implementation of inheritance chosen
> for its simplicity. It has issues, lots of, e.g. with substitutability,
> multiple inheritance etc. A class can be built by many ways, extension is
> only one of them.

Yes, but my point (and I know you -and many others- disagree with that!)
is that inheritance is NOT required for OO. It is just one among many
ways of organizing objects.

-- 
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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: was Ada 83 in fact object oriented ?
  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:44   ` halfmaddad
                     ` (2 subsequent siblings)
  3 siblings, 1 reply; 20+ messages in thread
From: Dmitry A. Kazakov @ 2015-09-25  8:43 UTC (permalink / raw)


On Fri, 25 Sep 2015 10:14:24 +0200, J-P. Rosen wrote:

> Objects can then be organized as composition of lower level objects
> (programming by composition) or as hierarchies of general objects to
> more specific objects. The latter require inheritance.
> 
> For some mysterious reasons, the proponents of the hierarchical method
> declared that they were the only true object orientation, and
> disregarded OO by composition.

Nothing mysterious, object is an end product of analysis, design,
implementation. Things are decomposed into objects which interacts each
other through their methods.

Composition is of no interest beyond implementation issues because it does
not produce any functional object. There is no methods the product has,
except for "give me a component." Without methods it is not an object, just
a very rudimentary container.

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.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: was Ada 83 in fact object oriented ?
  2015-09-25  8:30     ` J-P. Rosen
@ 2015-09-25  8:47       ` Dmitry A. Kazakov
  0 siblings, 0 replies; 20+ messages in thread
From: Dmitry A. Kazakov @ 2015-09-25  8:47 UTC (permalink / raw)


On Fri, 25 Sep 2015 10:30:29 +0200, J-P. Rosen wrote:

> Le 25/09/2015 10:11, Dmitry A. Kazakov a écrit :
>> Regarding extension, it is just one implementation of inheritance chosen
>> for its simplicity. It has issues, lots of, e.g. with substitutability,
>> multiple inheritance etc. A class can be built by many ways, extension is
>> only one of them.
> 
> Yes, but my point (and I know you -and many others- disagree with that!)
> is that inheritance is NOT required for OO. It is just one among many
> ways of organizing objects.

Right, this is why it is *not* OO. IMO, OO is about creating and designing
objects. You can organize only things you already have. That is less than
OO and even less than Ada 83 where you do can create new types for new
objects. Organizing existing objects was already possible in FORTRAN-IV...

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: was Ada 83 in fact object oriented ?
  2015-09-25  8:43   ` Dmitry A. Kazakov
@ 2015-09-25 11:04     ` J-P. Rosen
  2015-09-25 12:17       ` Dmitry A. Kazakov
  0 siblings, 1 reply; 20+ messages in thread
From: J-P. Rosen @ 2015-09-25 11:04 UTC (permalink / raw)


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.

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.

-- 
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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: was Ada 83 in fact object oriented ?
  2015-09-25 11:04     ` J-P. Rosen
@ 2015-09-25 12:17       ` Dmitry A. Kazakov
  2015-09-25 12:44         ` J-P. Rosen
  0 siblings, 1 reply; 20+ messages in thread
From: Dmitry A. Kazakov @ 2015-09-25 12:17 UTC (permalink / raw)


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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: was Ada 83 in fact object oriented ?
  2015-09-25 12:17       ` Dmitry A. Kazakov
@ 2015-09-25 12:44         ` J-P. Rosen
  2015-09-25 15:27           ` Dmitry A. Kazakov
  0 siblings, 1 reply; 20+ messages in thread
From: J-P. Rosen @ 2015-09-25 12:44 UTC (permalink / raw)


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: was Ada 83 in fact object oriented ?
  2015-09-25  8:14 ` J-P. Rosen
  2015-09-25  8:43   ` Dmitry A. Kazakov
@ 2015-09-25 12:44   ` halfmaddad
  2015-09-25 16:24   ` Pascal Obry
  2015-09-25 20:32   ` Jeffrey R. Carter
  3 siblings, 0 replies; 20+ messages in thread
From: halfmaddad @ 2015-09-25 12:44 UTC (permalink / raw)


Hi J.P

It is asking for $15, If there is a way to send it that would be great. 

-Pat


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: was Ada 83 in fact object oriented ?
  2015-09-25 12:44         ` J-P. Rosen
@ 2015-09-25 15:27           ` Dmitry A. Kazakov
  0 siblings, 0 replies; 20+ messages in thread
From: Dmitry A. Kazakov @ 2015-09-25 15:27 UTC (permalink / raw)


On Fri, 25 Sep 2015 14:44:24 +0200, J-P. Rosen wrote:

> Le 25/09/2015 14:17, Dmitry A. Kazakov a écrit :

>> 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).

Classification is implied because sets of types are involved. Class is a
set of types, or a category in mathematics.
 
>> 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!

"+" is a component? How could you reuse it without breaking types?

The point is that it is a different level of reuse. A subprogram defined on
the type T can be reused for the set of values of T. A primitive operation
of T can be reused for all values of all types from T'Class.

> 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.

Yes.

> With composition, you have ready-to-use software components. You make a
> new objects by assembling them in a different way.

Are components here packages? subprograms? You cannot reuse them for
something different they were designed. Composition changes or adds
nothing.

> 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.

But composition does not work this way. If you put two integers into a
record you don't get another numeric type. For making resistors working the
way you described you need a class Resistor, instances of, an operation
that connects two resistors and produces a new resistor. Composition is
exclusively about creating built-in container types. I see no user code
reuse at all. The compiler reuses its code, that's clear.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: was Ada 83 in fact object oriented ?
  2015-09-25  8:14 ` J-P. Rosen
  2015-09-25  8:43   ` Dmitry A. Kazakov
  2015-09-25 12:44   ` halfmaddad
@ 2015-09-25 16:24   ` Pascal Obry
  2015-09-25 20:32   ` Jeffrey R. Carter
  3 siblings, 0 replies; 20+ messages in thread
From: Pascal Obry @ 2015-09-25 16:24 UTC (permalink / raw)


Le vendredi 25 septembre 2015 à 10:14 +0200, J-P. Rosen a écrit :
> As to your original question, Ada83 had excellent support for OO by
> composition, but lacked direct support for inheritance.

Agreed!

-- 
  Pascal Obry /  Magny Les Hameaux (78)

  The best way to travel is by means of imagination

  http://v2p.fr.eu.org
  http://www.obry.net

  gpg --keyserver keys.gnupg.net --recv-key F949BD3B


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: was Ada 83 in fact object oriented ?
  2015-09-25  8:14 ` J-P. Rosen
                     ` (2 preceding siblings ...)
  2015-09-25 16:24   ` Pascal Obry
@ 2015-09-25 20:32   ` Jeffrey R. Carter
  2015-10-05 12:27     ` vincent.diemunsch
  3 siblings, 1 reply; 20+ messages in thread
From: Jeffrey R. Carter @ 2015-09-25 20:32 UTC (permalink / raw)


On 09/25/2015 01:14 AM, J-P. Rosen wrote:
> 
> Long ago, I wrote a paper in CACM about this topic ("what orientation
> should Ada objects take"). A link is available from
> http://www.adalog.fr/en/publications.html. Normally, the link (to ACM)
> should allow you to download a PDF version for free, although sometimes
> it does seem to require money... Maybe it depends on whether you are
> logged in as ACM member. In case of problem, ask me and I can provide a
> copy.

I also wrote a couple of papers on the subject: "Ada's design goals and
object-oriented programming," /Ada Letters/, 1994, and "OOP vs. readability",
/Ada Letters/, 1997. They should be available for free download from

http://pragmada.x10hosting.com/papers.html

If there's a problem with downloading let me know and I can send you copies.

-- 
Jeff Carter
"How'd you like to hide the egg and gurgitate
a few saucers of mocha java?"
Never Give a Sucker an Even Break
101


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: was Ada 83 in fact object oriented ?
  2015-09-24 22:23 was Ada 83 in fact object oriented ? halfmaddad
                   ` (2 preceding siblings ...)
  2015-09-25  8:14 ` J-P. Rosen
@ 2015-10-01 13:46 ` Paul Colin de Gloucester
  2015-10-05 12:12   ` Vincent
  3 siblings, 1 reply; 20+ messages in thread
From: Paul Colin de Gloucester @ 2015-10-01 13:46 UTC (permalink / raw)


Patrick sent on September 24th, 2015:
|---------------------------------------------------------|
|"[. . .]                                                 |
|                                                         |
|OO is a huge topic but I am wondering what are the basic |
|requirements for a language to be said to support object |
|orientation."                                            |
|---------------------------------------------------------|

As mentioned by Alan Curtis Kay on
  WWW.Purl.org/stefan_ram/pub/doc_kay_oop_en
: "[. . .]

OOP to me means only messaging, local retention and protection and
hiding of state-process, and extreme late-binding of all things. It
can be done in Smalltalk and in LISP. There are possibly other systems
in which this is possible, but I'm not aware of them.

[. . .]"

He was in fact aware of Ada before Ada 95. For example, he claimed on
a slide that "ADA" was a better language than other early non-OOP
languages:
  FTP://FTP.Squeak.org/Media/AlanKay/Alan\%20Kay\%20at\%20OOPSLA\%201997\%20-\%20The\%20computer\%20revolution\%20hasnt\%20happened\%20yet.ogg 
"The Computer Revolution Hasn't Happened Yet", "The 12th ACM SIGPLAN
conference on Object-oriented programming, systems, languages, and
applications", 1997. Gary Kephart reported on this on Team Ada on
October 8th, 1997,
  HTTP://LISTSERV.ACM.org/SCRIPTS/WA-ACMLPX.CGI?A2=ind9710&L=team-ada&P=R1772&1=team-ada&9=A&J=on&K=2&d=No+Match%3BMatch%3BMatches&z=4 
: "Just got back from OOPSLA last night. [. . .]
[. . .]

[. . .]

Oh, yeah, I had to sigh when Alan Kay, the keynote speaker, had a slide
with Ada spelled as "ADA".

Gary

--------------------------------------------------------------------
Gary Kephart, Software Engineer  |  Investment Technology Group, Inc
Phone: (213)270-7544             |  400 Corporate Pointe, Suite 855
Fax:   (310)216-0933             |  Culver City, CA 90230
mailto:[log in to unmask]        |  http://www.itginc.com
Team Ada member                  |  "The Future of Trading"

Disclaimer: these are my opinions, not ITG's."

Also do not forget that OO code tends to be bloatware.

|--------------------------------------------------------|
|"Ada [. . .]                                            |
|                                                        |
|[. . .]                                                 |
|                                                        |
|Thanks for reading-Patrick"                             |
|--------------------------------------------------------|

All versions of Ada are statically strongly typed engineering
languages. No version of Ada is an object-oriented-programming
language. Ada focuses on preventing errors early. This starkly
contrasts with OOP. OOP languages encourage runtime crashes which are
to be worked around by users replacing software which an Ada compiler
would had rejected as invalid instead of agreeing to compile it.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: was Ada 83 in fact object oriented ?
  2015-10-01 13:46 ` Paul Colin de Gloucester
@ 2015-10-05 12:12   ` Vincent
  2015-10-05 18:28     ` Jeffrey R. Carter
  0 siblings, 1 reply; 20+ messages in thread
From: Vincent @ 2015-10-05 12:12 UTC (permalink / raw)


Le jeudi 1 octobre 2015 15:46:14 UTC+2, Paul Colin de Gloucester a écrit :
> 
> As mentioned by Alan Curtis Kay on
>   WWW.Purl.org/stefan_ram/pub/doc_kay_oop_en
> : "[. . .]
> 
> OOP to me means only messaging, local retention and protection and
> hiding of state-process, and extreme late-binding of all things. It
> can be done in Smalltalk and in LISP. There are possibly other systems
> in which this is possible, but I'm not aware of them.
> 

So we now have three définitions of OOP :

1. Encapsulation of data and operations that manipulates that data into a
   source code module that reflects the abstractions (the concepts) of the
   problem. Ada 83 does this well.

2. Classes of types, with a common interface, each of which encapsulates an
   abstraction, to promote direct reuse of executable code (in fact the 
   caller).  This contains the ideas of interfaces, virtual methods and so on.
   Ada 2005 does this, but I thing it could have been designed better, even if
   Ada 2005 corrected some of the worst flaws of Ada 95.

3. Machines exchanging messages as abstract syntax trees. Only LISP, Smalltalk
   and Objective C do this. But I personnaly find odd the idea of Objects
   exchanging messages. If they "speak" shouldn't they be called "subjects" or
   "agents" or "actors" ?

Regards,

Vincent


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: was Ada 83 in fact object oriented ?
  2015-09-25 20:32   ` Jeffrey R. Carter
@ 2015-10-05 12:27     ` vincent.diemunsch
  0 siblings, 0 replies; 20+ messages in thread
From: vincent.diemunsch @ 2015-10-05 12:27 UTC (permalink / raw)


Le vendredi 25 septembre 2015 22:32:04 UTC+2, Jeffrey R. Carter a écrit :
> 
> I also wrote a couple of papers on the subject: "Ada's design goals and
> object-oriented programming," /Ada Letters/, 1994, and "OOP vs. readability",
> /Ada Letters/, 1997. They should be available for free download from
> 

Very good paper !


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: was Ada 83 in fact object oriented ?
  2015-10-05 12:12   ` Vincent
@ 2015-10-05 18:28     ` Jeffrey R. Carter
  0 siblings, 0 replies; 20+ messages in thread
From: Jeffrey R. Carter @ 2015-10-05 18:28 UTC (permalink / raw)


On 10/05/2015 05:12 AM, Vincent wrote:
> 
> 1. Encapsulation of data and operations that manipulates that data into a
>    source code module that reflects the abstractions (the concepts) of the
>    problem. Ada 83 does this well.
> 
> 2. Classes of types, with a common interface, each of which encapsulates an
>    abstraction, to promote direct reuse of executable code (in fact the 
>    caller).  This contains the ideas of interfaces, virtual methods and so on.
>    Ada 2005 does this, but I thing it could have been designed better, even if
>    Ada 2005 corrected some of the worst flaws of Ada 95.
> 
> 3. Machines exchanging messages as abstract syntax trees. Only LISP, Smalltalk
>    and Objective C do this. But I personnaly find odd the idea of Objects
>    exchanging messages. If they "speak" shouldn't they be called "subjects" or
>    "agents" or "actors" ?

You see here the difference between things called "object oriented" because they
developed from thinking about objects and what role they play in the problem and
solution space, and things that have nothing to do with objects but were so
called because "object oriented" had become a buzzword meaning "good", much as
in earlier days things were called "structured" because "structured" had become
a buzzword meaning "good".

-- 
Jeff Carter
"I was hobbling along, minding my own business, all of a
sudden, up he comes, cures me! One minute I'm a leper with
a trade, next minute my livelihood's gone! Not so much as a
'by your leave!' You're cured, mate. Bloody do-gooder!"
Monty Python's Life of Brian
76


^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2015-10-05 18:28 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
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

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