Dieter Maurer wrote:
Philipp von Weitershausen wrote at 2006-9-30 02:30 +0200:
You want to stick this interface to individual objects,
while Lennart proposed to stick it to a type and use
some kind of inheritance to make it effective on all objects
instantiated from this type.
But where does this type come from? Persistent classes are hard (hence ZClasses cannot be maintained by anyone except a few people).

I remember that Jim proposed "PersistentModule"s, currently
a ZODB proposal, to implement functionality similar to ZClasses
in an easier way.

But, I cannot yet answer your question sincerely.

I can't either. If we ever get persistent code, that's nice, but I'd still be skeptical. Frankly, I think it's yagni ("you ain't gonna need it"). And if I understood Jim correctly, he nowadays prefers the "code is on the filesystem and we evolve datastructures using generations" story over "code and datastructures are persistent so that both can be evolved at the same time".

For me, Lennart's approach seems to be far more economic, as
he does things on an abstract (the type) level rather than
always work on the concrete (the individual object) level.
I don't see how introducing another concept (a type) would be more economic.

I find that the introduction of classes with (multiple) inheritance
has been very economic. It was another concept but a highly fruitful
one, despite the fact that they are not so liked in Zope3 land.

I think "fat" objects from mixing many different concerns into a single implementation are a failed approach. Seeing how flexible you can be wit

a) separating concerns (functionality, responsibilities) into separate objects called components and

b) making the lookup of these components pluggable (using registries a.k.a. the Component Architecture),

I would not recommend anyone to over-use multiple inheritance as it's been done in Zope 2. That is not to say that inheritance and even multiple inheritance is evil. I think the right balance is necessary :)
Zope-Dev maillist  -
**  No cross posts or HTML encoding!  **
(Related lists - )

Reply via email to