Re: why OOP needs tails recursion article

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: why OOP needs tails recursion article

Eliot Miranda-2


On Sat, Dec 5, 2009 at 2:00 AM, Stéphane Ducasse <[hidden email]> wrote:
http://lambda-the-ultimate.org/node/3702


I want to return to the implementation and optimization implications of this later.  But Steele's post refers to William Cook's excellent paper On understanding data abstraction, revisited. Onward! Essays, 2009 ACM OOPSLA. SIGPLAN Notices 44, 10 (Oct. 2009), 557-572. There's a freely available draft version.  The quote I want to emphasise is

The extensibility of objects does not depend upon inheritance, but rather is an inherent property of object interfaces.


The paper proves this point eloquently and concisely.  The implication is that isKindOf: is <shout>BROKEN</shout>.  In the absence of something better isSomeInterface to query whether an object implements some interface SomeInterface is acceptable.  isKindOf: (and the horror I found the other day isKindOf:orKindOf: (you see why it exists and where it leads?)) is not and should be expunged.

My weekend rant.

best,
Eliot


Reply | Threaded
Open this post in threaded view
|

Re: Re: why OOP needs tails recursion article

Juan Vuletich-4
Eliot Miranda wrote:

>
>
> On Sat, Dec 5, 2009 at 2:00 AM, Stéphane Ducasse
> <[hidden email] <mailto:[hidden email]>> wrote:
>
>     http://lambda-the-ultimate.org/node/3702
>
>
>
> I want to return to the implementation and optimization implications
> of this later.  But Steele's post refers to William Cook's excellent
> paper On understanding data abstraction, revisited. Onward! Essays,
> 2009 ACM OOPSLA. SIGPLAN Notices 44, 10 (Oct. 2009), 557-572. There's
> a freely available draft version
> <http://www.cs.utexas.edu/%7Ewcook/Drafts/2009/essay.pdf>.  The quote
> I want to emphasise is
>
> The extensibility of objects does not depend upon inheritance, but
> rather is an inherent property of object interfaces.
>
>
> The paper proves this point eloquently and concisely.  The implication
> is that isKindOf: is <shout>*/BROKEN</shout>/*.  In the absence of
> something better isSomeInterface to query whether an object implements
> some interface SomeInterface is acceptable.  isKindOf: (and the horror
> I found the other day isKindOf:orKindOf: (you see why it exists and
> where it leads?)) is not and should be expunged.
>
> My weekend rant.
>
> best,
> Eliot
I fully agree with #isKindOf: and the reasons given in the paper.

But in my opinion, the #is: method as suggested by Igor at
http://lists.squeakfoundation.org/pipermail/squeak-dev/2009-June/136793.htm 
(and included in Cuis) is much better than #isSomeInterface. It has two
big advantages:
- It does not bloat the classes, especially Object, that would need to
implement many #isSomeInterface variants.
- By just looking at the inheritance of a certain #is: implementor you
can get a quick grasp of the interfaces it conforms.

Cheers,
Juan Vuletich

Reply | Threaded
Open this post in threaded view
|

Re: Re: why OOP needs tails recursion article

Gerardo Richarte
Juan Vuletich wrote:
> I fully agree with #isKindOf: and the reasons given in the paper.
>
> But in my opinion, the #is: method as suggested by Igor at
> http://lists.squeakfoundation.org/pipermail/squeak-dev/2009-June/136793.htm

the correct link is
http://lists.squeakfoundation.org/pipermail/squeak-dev/2009-June/136793.html

    gera