Re: TRM - Morbidity has set in, or not?
Date: 22 May 2006 08:59:08 -0700
Message-ID: <1148313548.437055.147800_at_38g2000cwa.googlegroups.com>
Tony D wrote:
>
>From memory of Smalltalk (and I admit it's been a while), the term
> "message passing" actually illuminates rather than obscures. Although
> message passing might *look like* function invocation, it isn't.
> Conceptually, an object passes a message (one way or another) to
> another object asking it to do something. Objects don't call or invoke
> each other per se.
> The problem with OOP as observed by most these days is that it is
> object oriented imperative programming. At the end of the day, most
> OOPLs are simply fancier ways of arranging assignment statements, just
> like folks have been doing since the days of machine code. The
> fundamental abstraction is changes to a machine store. This is why you
> can make your comment about state throughout the program; the program
> is all about managing state.
Agreed.
> You could conceivably come up with an
> object oriented functional language, and I'm fairly sure at some point
> object oriented Prolog has been tried.
Also note OCaml, an (impure) FPL that is OO.
> It depends how valuable the
> tenets of object oriented programming are to you.
The big wins in OOPLs seems to me to be
1) easy creation of new types
2) modularity
The most heavily noticed three things, inheritance, polymorphism, encapsulation, are not it. Inheritance is an attempt at increasing code reuse. Except it turns out not to be a great mechanism for reuse. Polymorphism is awesome, and one of the best features of OOPLs, but subtyping polymorpism is annoyingly complex, and ultimately not as good as interface polymorphism or parametric polymorphism.
Encapsulation is what you need when you don't have declarative integrity constraints!
> (It would be much
> easier if there was deep-level agreement on what the fundamental tenets
> of object oriented programming are; basics, like what *is* an object ?
> what does an object *mean* ?)
> I'm still dreaming of a language, much like Haskell, with relations as
> first class citizens.
Agreed!
Marshall Received on Mon May 22 2006 - 17:59:08 CEST