"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