>mischaracterizations of both the OO paradigm and the Relational paradigm
(if
>I can call it that).
Where and how has anyone mischaracterized anything OO?
As for relational, it is a logical data model and not a paradigm, and I wish
you would not call it that.
A data model consists of:
- A collection of data object types, which form the basic building blocks
for any database that conforms to the model.
- A collection of general integrity rules, which constrain the set of
occurrences of those object types that can legally appear in any such
database.
- A collection of operators, which can be applied to such object
occurrences for retrieval and other purposes.
(Quoted from the bibliography of Chapter 4 of Date's _Introduction to
Database Systems, Sixth Edition_, which paraphrases earlier work by E. F.
Codd.)
A paradigm (in the sense I believe you use the word) is:
A set of assumptions, concepts, values, and practices that constitutes a way
of viewing reality for the community that shares them, especially in an
intellectual discipline.
(From _The American HeritageŽ Dictionary of the English Language, Fourth
Edition_ found http://www.dictionary.com)
I previously asked some rhetorical questions based on the definition above.
I will ask them again:
What if the community's assumptions are generally false?
- Faulty assumption: Object databases outperform relational databases.
- Faulty assumption: Relations or tuples resemble object classes.
- Faulty assumption: Relational domains are not object classes.
- Faulty assumption: Relational domains have no internal structure.
- Faulty assumption: Object designs require fewer entities than
relational designs.
- Faulty assumption: Association by pointer has any advantage over
association by value.
- Faulty assumption: Object references are more "natural" than
relations.
- Faulty assumption: Object references simplify.
- Faulty assumption: Additional data object types (in the sense from
data model above) increase semantic expressibility.
- Faulty assumption: Object designs capture greater semantics than
relational designs.
- Faulty assumption: Normalization is difficult.
- Faulty assumption: Normalization is not necessary.
- Faulty assumption: Normalization necessarily impacts performance.
- Faulty assumption: Theory is impractical.
What if the community's concepts are vague and fuzzy?
- Define "object" (How many OO folks ever distinguish among object
classes, object instances, object values and object variables in their
discussions?)
- Define "inheritence" (How many OO folks use the same unqualified term
to mean inheritence of interface, inheritence of implementation, inheritence
of representation, the concepts of specialization/generalization, and
polymorphism?)
- What is the difference between the OO concept of identity and the
simple addressability of variables?
- How many OO proponents think that references and dynamic memory
allocation are inherent in OO?
What if the community's values are often misguided?
- How does any expert programmer justify marginally saving their own
effort at the cost of greatly increasing the effort of their end-users?
- How does any programmer whose work uses databases justify dismissing
the science of databases?
- How can any programmer justify dismissing theory as impractical?
What if the community's practices are generally ad hoc and arbitrary?
- Just look at any religious war among different OO language fans.
- Consider that there is no single accepted concept or definition of OO.
Received on Sun Jul 08 2001 - 11:46:22 CDT