In article <200210091900.29675.alwagner / tcac.net>,
Albert Wagner  <alwagner / tcac.net> wrote:
>On Wednesday 09 October 2002 8:12 pm, Phil Tomson wrote:
><snip>
>> Does the term Isomorphism work here?  It seems that it might provide us
>> with a distinction from Polymorphism (which people coming from a C++/Java
>> world see as being distinctly related to inheritance).
>
>I wouldn't surrender the term Polymorphism to a newer and more limited 
>definition.  But then I'm an old Smalltalker.

I'm not sure we'd be giving up anything.  Here's the definition for 
isomorphism from dictionary.com:

Isomorphism:
1.Biology. Similarity in form, as in organisms of different ancestry.
2.Mathematics. A one-to-one correspondence between the elements of two 
sets such that the result of an operation on elements of one set corresponds to 
the result of the analogous operation on their images in the other set.

The idea of polymorphism would still exist - but it would refer to classes 
within an inheritance relationship.  Isomorphism would refer to a relation 
between totally unrelated classes (in this case the relation would be 
that the two unrelated classes both define exactly the same interface).

>
>>
>> Also, what about this idea of set operations on Classes (where we look at
>> classes and modules as sets of methods)?  Would it buy us anything?
>
>I don't really think so.  I would prefer that those new to pure OOP languages 
>discard/enlarge their thinking and realize that neither C++ nor Java are pure 
>OOP.

I agree that neither C++ nor Java represent pure OOP.

I started this thread primarily in response to the threads running around 
about specifying types for a method's arguments and multiple dispatch.  My 
intent is only to provoke some brainstorming in a somewhat different 
direction.


Phil