Re: OO and dynamic classes and methods...
To: Erick Gallesio <eg_at_kaolin.unice.fr>
Cc: Amancio Hasty Jr <hasty_at_netcom.com>, stk_at_kaolin.unice.fr
Subject: Re: OO and dynamic classes and methods...
Date: Fri, 03 Feb 95 10:55:34 -0800
From: hasty_at_netcom.com
X-Mailing-List: <stk_at_kaolin.unice.fr> archive/latest/362
X-Loop: stk_at_kaolin.unice.fr
Precedence: list
First and foremost we should try to make application development
as easy as possible.
I want to develop a spread sheet application development environment
which is probably closer in concept to a GUI/application environment.
The user should have the capability of changing classes and methods
dynamically. One of the existing problems with window applications
is their inflexible approach that they offer to the user.
I believe that a user/developer should have the capability of
changing the behavior of the programs. Besides, in a dynamic
changing environment is kind of hard to rely on a static
inheritance mechanism. As for the performance issue,
if the user or application does not require dynamic inheritance
then it should be possible to disable the feature.
I really would like to understand this issue of dynamic
inheritance vs. static inheritance specially if new languages
such as Self, Dylan, etc... are incorporating dynamic inheritance
into their language. For those not familiar with this issue,
a couple of papers argue for dynamic inheritance:
self.stanford.edu:/pub/papers/inheritance.ps.Z
organizing.ps.Z
Here are two ways to play with the dynamic inheritance (delegation) ideas
of self and other languages.
1. In a delegation language objects are a little like CLOS instances
(slots and behavior), and a little like classes since cloning is like
make-instance and adding new slots to a delegation object is like defining
a new class. Thus, if you define an object with standard-class (in CLOS)
mixed in, it will be a little like an object in Self, or Key.
2. You can delegate behavior (some or all of an object's behavior) to
another objects using multiple dispatch. So you might define a generic
function that dispatched on your parent object but would use your slots in
the method. An object would have radically different behavior simply by
changing the parent object.
k
Received on Fri Feb 03 1995 - 21:18:39 CET
This archive was generated by hypermail 2.3.0
: Mon Jul 21 2014 - 19:38:59 CEST