Lambda the Ultimate

inactiveTopic A Survey of Object-Oriented Concepts
started 11/16/2003; 4:34:33 AM - last post 11/17/2003; 7:09:06 AM
Ehud Lamm - A Survey of Object-Oriented Concepts  blueArrow
11/16/2003; 4:34:33 AM (reads: 11967, responses: 8)
A Survey of Object-Oriented Concepts
Nierstrasz Oscar, 1989. A Survey of Object Oriented Concepts. Chapter in object oriented concepts, databases and applications. Won Kim, Frederick H. Lochovsky (Eds.) ACM Press.

Object-oriented languages and systems are a developing technology. There can be no agreement on the set of features and mechanisms that belong in an object-oriented language since the paradigm is far too general to be tied down. (What features belong in a declarative language?) The idea of using objects to model software is a natural one that will inevitably appear and reappear in various forms; we can expect to see new ideas in object-oriented systems for many years to come.

This paper is from 1989. Do you think it would have looked significantly different had it been written today?


Posted to OOP by Ehud Lamm on 11/16/03; 4:35:46 AM

Marc Hamann - Re: A Survey of Object-Oriented Concepts  blueArrow
11/16/2003; 8:36:15 AM (reads: 943, responses: 2)
We have put forward the proposition that the term object-oriented is best interpreted as referring to any approach that exploits encapsulation or “packaging” in the process of designing and building software.

I think this is interesting claim, especially for LtU readers, because if we accept it, the distinction we often draw between OOP and FP would cease to exist; both use encapsulation as a core part of their "paradigm".

The one remaining difference would be the degree to which statefulness is required or assumed.

I think one of the things that this paper reminds us of is that the OO hype existed primarily in relation to the "spaghetti" programming that was the norm not that long ago.

This might allow us to sharpen the usual OO vs FP discussion: they are both "encapsulation oriented" programming, but OO tries to encapsulate state changes via a coalgebraic model, and FP tries to encapsulate successive layers of stateless structures via an algebraic model.

I think this is where we have been getting anyway (thanks to Frank and Bart Jacobs), but perhaps nuking the terms "OO" and "FP" might help us to avoid misunderstandings arising from red-herrings like inheritence, polymorphism, etc.

AEOP (Algebraic Encapsulation Oriented Programming) and CEOP (Coalgebraic Encapsulation Oriented Programming) anyone? ;-)

(Better names and acronyms would be much appreciated if anyone has any ideas. ;-) )

Manuel Simoni - Re: A Survey of Object-Oriented Concepts  blueArrow
11/16/2003; 10:47:59 AM (reads: 933, responses: 1)
red-herrings like ... polymorphism

I guess you mean polymorphism in the usual OO sense (messages/generic functions). Could you elaborate on this point, because I don't think I follow?

Andris Birkmanis - Re: A Survey of Object-Oriented Concepts  blueArrow
11/16/2003; 11:43:37 AM (reads: 894, responses: 1)
Why not BEOP? Or is bialgebraic approach really as unpopular, as it seems from the lack of papers? ;-) Bialgebraic stuff wakes in my mind strange associations with Alice and the Looking Glass, but unfortunately, this name is already being used by a very interesting PL :-))

Marc Hamann - Re: A Survey of Object-Oriented Concepts  blueArrow
11/16/2003; 1:51:33 PM (reads: 893, responses: 0)
I guess you mean polymorphism in the usual OO sense (messages/generic functions).

"Polymorphism" is usualy trotted out as a defining characteristic of OOP.

What this term means exactly seems to vary depending on who you talk to.

Regardless of the specific definition, an equivalent property can (and usually does) exist in a given FPL, so I'm claiming it is a red-herring for distinguishing between OO and FP.

If you strip away the details of inheritence (a new, more specific entity can be used where an old more general entity was already), it is equally unhelpful as a distinguishing feature between OO and FP.

I'm re-reading the latest version of Friedmans's OO Style paper, and I think he effectively makes the case that OO Style is possible in any language that has both first-class closures and statefulness.

Marc Hamann - Re: A Survey of Object-Oriented Concepts  blueArrow
11/16/2003; 2:16:03 PM (reads: 864, responses: 0)
Or is bialgebraic approach really as unpopular, as it seems from the lack of papers?

By bialgebraic, do you mean combining algebraic and co-algebraic models?

Wouldn't that just be an impure FPL? ;-)

Neel Krishnaswami - Re: A Survey of Object-Oriented Concepts  blueArrow
11/16/2003; 3:06:19 PM (reads: 848, responses: 0)
There's Martin Erwig's paper "Categorical Programming with Abstract Data Types", which talks about using the bialgebraic approach.

I think that the reason the bialgebraic approach hasn't caught on yet is the difficulty of programming using existential types in functional languages. ML offers pretty good support for parametric polymorphism, but its support for existential quantification is much more limited. Haskell lets you simulate existentials using higher-rank polymorphism, but maybe that's too exotic for most people? It seems like people just use runST and don't think about it any further. (Frank, or other serious Haskell users, please comment.)

Andris Birkmanis - Re: A Survey of Object-Oriented Concepts  blueArrow
11/17/2003; 6:55:21 AM (reads: 687, responses: 0)
I'm re-reading the latest version of Friedmans's OO Style paper, and I think he effectively makes the case that OO Style is possible in any language that has both first-class closures and statefulness.
Am I right that he concluded that super's invocations are static? While true in some (most of) so-called OO languages, it does not apply to mixins and their kin...

I tend to believe that inheritance is unmanagable for anything other than toy projects. Therefore Friedmans analysis is not exactly my cup of tea. Otherwise, I think it's a great job of showing that objects are just gobs of recursion :-)

Andris Birkmanis - Re: A Survey of Object-Oriented Concepts  blueArrow
11/17/2003; 7:09:06 AM (reads: 691, responses: 0)
By bialgebraic, do you mean combining algebraic and co-algebraic models? Exactly.

Wouldn't that just be an impure FPL? ;-) No, it would be 100% pure BAPL ;-)

<troll> Calling co-algebraic aspects "impure" is not very politically correct, and somehow implies they are inferior to algebraic. Even the word "co-algebraic" is a derivative of "algebraic". This cannot be tolerated. Emancipate objects! </troll>

There's Martin Erwig's paper "Categorical Programming with Abstract Data Types", which talks about using the bialgebraic approach. This is a great paper, although a bit tough for me... I will need to re-read it some day, IIRC it was related to "Theorems for Free"? In the sense that programs are uniquely determined by their types? It's very sad we are not taught such ideas in schools :-(

But this post is becoming an off-topic, suitable at best for "Education" category...