"Joe Graham" <joe / aiobjects.com> wrote in message
news:WyP67.10357$4v6.889723 / e420r-atl3.usenetserver.com...
> Why Objects?

That was a darn long text - and I must admit I didn't carefully read
everything. But to answer you primary concerns:

Keyword: less bugs.

There is a HUGE difference between object API's - that is, the reusability
issue.
It is difficult to design a general purpose object model. You need to
anticipate, test strange cases etc. I'd say 10 times more development than
an object model "just for my purpose".
Sometimes these object models pays off, sometimes they don't.
With Ruby - code reuse has been a lot simpler though. I have been wishing
for something like mixins for a long time.

So the next issue: why objects "just for my purpose"?
It reduces the number of bugs in the system.

I takes 14 days to learn C++, and these days 1 day to learn Ruby. But it
still takes at least a year to create good object models, although Ruby
makes a lot of choices simpler, reducing the learning curve.
But the answer is, that IF you have the skills, object models let you hide
detail levels. You are factoring the dependecies in the system, and often
lets you focus either on the whole subsystem, or the absolute detail level.
In structured programming, you often get entangled in too many dependencies,
even with the best intentions.

Bad object models are bad. But they are difficult to implement. You spent
time fighting problems. It is, on the other hand, not difficult to implement
hopelessly unstructured structured code.

Object models where you do not change object relationsships whenever
appropriate, are usually very bad. In object models you need to prepare for
changes in the model as well. You can't write the model once, and then just
enhance through derivation. This is "The waterfall" model once again.

Iterative design is more imporant than most other design concepts.
I'm not 100% for object modelling any more. But as it is, it is one of the
better approaches we have.
What I primarily do not like, is that everything derives from something
specific. This idea has long been dropped in the biological evolutionary
theories.
And here mixins is a step in the right direction. Objects should reflect
behaviour, not necessarily inheritance.
Ruby is so very good at integrating behaviour from existing code base that
it more looks like a DNA swapping bacteria than an OO language.


Mikkel