OOP

Robert A. Abernathy raa@hybrithms.com
Wed, 12 Nov 1997 16:15:50 +0000 (0ęd0ęd)



On Wed, 12 Nov 1997, Nick Kallen wrote:

> 
> I think you fail to see most of the content of the whole discussion. Look at
> Marco Pil's small (and beautiful) command based operating system (c.f., "Re:
> Existential Types, object-orientation" 11/7/97) and you will see Dynamic
> types that are purely in the spirit of the functional language Clean.
>     If you examine my proposals, you'll see that I propose things purely in
> the spirit of Clean, as well: to have type classes extended to Dynamic
> types. (What could possibly be a more obvious and natural proposal to make
> Clean a consistent language?) Despite that this allows a somewhat
> object-oriented style of programming (i.e., it allows psuedo-inheritence and
> psuedo-type extension), these constructs require programming in a functional
> style; it's no different from type extension on static types.
>     In short, the calculus that my extended Clean presents is not an
> OO-functional mix; it is functional.
> 
> I am not trying to muddy the waters.
> 

My point is simple. You want to extend the type system.  I didn't
want to imply that you wanted to do this in any way that was not
consistent with the spirit or style of Clean. I simply don't like
the idea of an object oriented language the extends a non-object
oriented language (functional or otherwise).  I firmly believe that
the type system of an OO language needs to have "class" (as in OO class
not function family class) at the base of the type system, not as an
extension. The problems I think would probably come up are types
that aren't in the inheritance tree.  This kind of thing kills
container classes in C++. This is especially true when multiple
inheritance trees get built for different libraries.

Once again, I'm not trying to say that your proposals couldn't handle
all of these concerns (or any others) in a consistent manner.  I would
just like to see an attempt at this problem from the other direction.
This is because I think that a pure functional OO language could be
a great way to do large scale software engineering in a concurrent
environment.  Unfortunately, for me, I certainly don't have the
knowledge to carry something like this off.  I was simply trying to
induce others that might, to think along these lines.

Rob