Re: object relational database versus "inteligent" serialization
On 2/7/2010 5:37 AM, luc peuvrier wrote:
what do you think of
I created joafip to manage more objects than memory can contains.
I can also be use to persist data model.
There is no query language, all is done using object navigation:
relations between class are coded in the classes.
I get suspicious of anyone's code when the examples, such as the one
that leaps out at one from your link, contain major flaws from both a
coding and a pedagogical perspective. Your "item entity" example has a
constructor that calls 'super()' although the type descends directly
from 'Object' and 'super()' is called regardless. It uses 'float' to
represent a monetary amount. One might argue that it's "just" an
example, but that lack of attention to detail in the visible example
makes one worry whether you pay enough attention in the library code.
The far more serious flaws with the joafip library are that it recreates
the ancient network database model, where all the data relations are
predefined, that it imposes a lot of data-storage-aware code on core
logic that should be at least largely unaware of that aspect, that it
doesn't support any kind of ad hoc query mechanism that I can see, and
that it doesn't do any better at supporting an object model than
existing, robust, flexible solutions like every JPA implementation.
I've been working with databases, including both relational and
network-model systems, for nigh thirty years, and attempts to create
"object-oriented" data systems since "object-oriented" became a
buzzword. None of the OODBs or ORMs were worth a damn until Hibernate,
and since then, JPA rolled out. Now you come along, re-inventing the
wheel but ignoring things like suspension, springs, shock absorbers,
bearing grease, ...
It is obvious that a lot of work went into it, and within the severe
limitations of its programming model it seems rather complete. It's
just that I can write cleaner code, with more robust data interaction
and safety, and more convenient management of the underlying data
persistence, with more flexibility going forward, and the comfort of
knowing there's a large support framework, and I will bet dollars to
doughnuts far better performance especially under heavy or heavily
concurrent load, by going with a JPA solution like Hibernate,
TopLink/EclipseLink or OpenJPA.
Feel free to answer point by point with substantiable arguments.