Re: Entity and Identity
Date: Thu, 23 Jul 2009 12:14:07 GMT
"Nilone" <reaanb_at_gmail.com> wrote in message news:a638cd4a-0dde-40e1-85d7-0e3e67ecc3d6_at_b14g2000yqd.googlegroups.com...
> Each aspect of OO was meant with good intentions, and
> works individually, but not together.
This is the great pitfall of adhocracy.
>The point is, if we're going to have abstraction mechanisms, it needs
>to be the right mechanism. The relational model is an example of
>such. It works for any composition of its features. The user may not
>understand the model, and thus the consequences of how they use it,
>but that is not the fault of the model. The information is available,
>and the consequences of applying the model is clearly defined.
>With OO, only a very specific subset of the possible compositions of
>its features are valid and useful. Using some features together
>breaks the promises made by the abstraction mechanism, i.e. it
>violates its own reason for existence when used incorrectly. And
>doing is so is very, very easy.
Both RM and OO can be easily misused, as evidenced by the last thirty years. Whether one case is the fault of the learners and the other is the fault of the model itself is a case that's yet to be made, IMO. You make a good case that RM is internally coherent and that OO may lack that internal coherence. That does make RM easier to learn correctly for a certain subset of those who set out to learn it. But only for that certain subset.
>I believe programmers will be best served by completely discarding OO
>as currently understood.
Is OO as currently understood different from what Alan Kay had in mind back at Xerox Parc? In what ways? What other luminaries aside from Alan Kay can speak for OO as a whole? What would programmers be better served by than OO?
At the risk of answering my own question, I'm going to say what I think the great divide between good programmers and good database experts was some 25 years ago, when I learned about databases. The great divide was between "process centered thinking" and "data centered thinking". This was more a matter of modes of thought than of languages and tools. But the two kinds of thinkers will gravitate towards different kinds of languages and tools. It's not clear to me, but I rather think that OO is a tool for process centered thinkers. Received on Thu Jul 23 2009 - 14:14:07 CEST