[#3109] Is divmod dangerous? — Dave Thomas <Dave@...>

14 messages 2000/06/06

[#3149] Retrieving the hostname and port in net/http — Roland Jesse <jesse@...>

Hi,

12 messages 2000/06/07

[#3222] Ruby coding standard? — Robert Feldt <feldt@...>

16 messages 2000/06/09

[#3277] Re: BUG or something? — Aleksi Niemel<aleksi.niemela@...>

> |I am new to Ruby and this brings up a question I have had

17 messages 2000/06/12
[#3281] Re: BUG or something? — Dave Thomas <Dave@...> 2000/06/12

Aleksi Niemel<aleksi.niemela@cinnober.com> writes:

[#3296] RE: about documentation — Aleksi Niemel<aleksi.niemela@...>

> I want to contribute to the ruby project in my spare time.

15 messages 2000/06/12

[#3407] Waffling between Python and Ruby — "Warren Postma" <embed@...>

I was looking at the Ruby editor/IDE for windows and was disappointed with

19 messages 2000/06/14

[#3410] Exercice: Translate into Ruby :-) — Jilani Khaldi <jilanik@...>

Hi All,

17 messages 2000/06/14

[#3415] Re: Waffling between Python and Ruby — Andrew Hunt <andy@...>

>Static typing..., hmm,...

11 messages 2000/06/14

[#3453] Re: Static Typing( Was: Waffling between Python and Ruby) — Andrew Hunt <andy@...>

32 messages 2000/06/16

[#3516] Deep copy? — Hugh Sasse Staff Elec Eng <hgs@...>

Given that I cannot overload =, how should I go about ensuring a deep

20 messages 2000/06/19

[#3694] Why it's quiet — hal9000@...

We are all busy learning the new language

26 messages 2000/06/29
[#3703] Re: Why it's quiet — "NAKAMURA, Hiroshi" <nahi@...> 2000/06/30

Hi,

[#3705] Re: Why it's quiet — matz@... (Yukihiro Matsumoto) 2000/06/30

Hi,

[ruby-talk:03588] Interface polymorphism

From: hal9000@...
Date: 2000-06-21 17:46:39 UTC
List: ruby-talk #3588
Another question, guys.

In his book _Object-Oriented Perl_, Damian Conway discusses
what he calls "interface polymorphism" (as distinguished
from inheritance polymorphism). Basically as long as two
objects both implement the method needed at the moment, no
ancestor relationship need exist between the objects.

He also says that the language needs a mechanism for
determining whether a given method actually exists.

I immediately thought of Ruby's "mix-in" capability (and
the method_missing method). I think this is certainly an
example of what Conway was talking about.

However, I also started thinking of Java's interfaces and
what Arnold & Gosling call "interface inheritance." At
first I thought it was the same thing; but then I realized
that in a sense they are opposites. Java wants the class to
implement the functionality of the specified methods; it
may or may not provide its own. Ruby, on the other hand,
uses mix-ins as a way of importing functionality; there are
typically no "abstract" or unimplemented methods in a module
that is mixed in.

I was also thinking at first that Java's interface inheritance
was a way of avoiding MI but keeping some of its advantages.
But then I realized that there can be name clashes in interfaces
also. So are they really avoiding MI at all?

They claim that the real problem of MI is inheriting multiple
*implementations*, not interfaces. I will have to think about
that.

For that matter, I am not sure how Ruby handles name clashes --
i.e., names defined in more than one included module. I suppose
you simply use the fully qualified name?

Comments??

Hal


--
Hal Fulton


Sent via Deja.com http://www.deja.com/
Before you buy.

In This Thread

Prev Next