This page contains an archived post to the Design Forum (formerly called the Flexible Java Forum) made prior to February 25, 2002.
If you wish to participate in discussions, please visit the new
Hierarchy Vs. Heterarchy
Posted by Alex Bunardzic on 22 Oct 1998, 10:36 AM
> An example would be a Shape (superclass), and Circle (subclass).
> This may seem good and nice in particular problem domains, like drawing these shapes, for eg.
> Now, if we start allowing the user to modify these shapes ?
> for instance, the user clicks on a circle and deforms it to form an unidentifiable shape. So, is it still an object of class circle ?
This is a very good question. Imagine a similar postulation: let's
say we devise a model of the evolutionary principles. We set up our
neat schema of the tree of the living beings (you know, living being
branching down to monocellular and multicellular, and then further
down to more complex and elaborate forms -- plants, animals...)
So far so good (or, like you say, "[T]his may seem good and nice").
Let me quote you on one more thing now:
"Now, if we start allowing the user to modify these shapes?"
In our example, the question would read: "now, if we start allowing
the process that we model to modify these beings?"
But, that's exactly the reason why we have set up the model in the
So, in my mind, the only reason we develop software is to allow for
dynamism. There is no useful software that only beautifully reflects
some perfect (static) schema.
An evolutionary process will by definition incessantly modify all
the participants. But this does not violate the fact that still we
are playing within the confines of a clearly defined hierarchical structure.
In order to have a circle, we imply that there is a no-circle. And
our circle can grow into a no-circle. We must allow for that, or
else our model is invalid.
This is where our hierarchy turns into a heterarchy.
This is where the fourth dimension (the time) enters the picture (isn't
it fascinating how 99.99% of today's software ignores this dimension?)
So, your unrecognisable shape will have its ORIGIN in the circle. This is
quite realistic, wouldn't you agree?