Gary Poster wrote:
In conclusion, the nebulous concept of "enterprise" applications on
Zope does not have a clear cut decision for or against an O/R mapper
such as Ape. The cost of O/R mappings is not inconsequential, and the
advantages are not conclusive. I hope that large projects that the
Zope community works on together can support both, and do not depend on
or exclude their use. Florent makes some excellent observations, and
solutions to the problems he identifies could be done at a number of
layers in the code base. Meanwhile, switching entirely to an O/R back
end over FileStorage or DirectoryStorage feels like a significant case
of "throwing the baby out with the bath water".
I would use this argument to support the idea of transparent ZODB-based
O/R mapping, which is what Ape does. With a transparent mapper, users
can choose their own storage backend. The baby is the application code
and the bath water is FileStorage/DirectoryStorage. Ape keeps the baby
100% intact. ;-)
Consider two scenarios:
1) A large open source Zope project decides they need the features of an
RDBMS throughout, so they dump ZODB and write to the RDBMS instead.
2) The same large Zope project decides their application should store
data primarily in ZODB, but that users should have the option of storing
data in an RDBMS instead. The developers rely on a transparent
ZODB-based O/R mapper to provide that option.
In the first scenario, by dumping ZODB, the developers are building a
thick wall around their project. I suspect it will be hard to share
code with the rest of the community because each camp will have to
maintain its own version of each module. Zope mindshare will divide,
making everyone a little weaker.
In the second scenario, there may be technical disadvantages, but the
majority of code written for Zope continues to be fairly interoperable
because most of it is based on ZODB. The social advantage of sharing
code is worth the price of a few technical disadvantages.
Zope3-dev mailing list