[Zope-dev] Zope.pipeline proposal
Martijn Faassen
faassen at startifact.com
Thu Feb 26 08:25:36 EST 2009
Chris McDonough wrote:
[snip]
> While I think that would be a good thing, I do want to mention that it's not
> really the point of the "whatsitdoing" benchmark.
Right, agreed. I think it's more important to make the Zope Framework
more comprehensible than it is to improve its performance. Its
performance is already fine for many purposes and it'll be much easier
to improve once the structure is more comprehensible anyway.
We have currently two efforts going on to increase comprehensibility of
the Zope Framework:
* cutting away code that isn't needed or is unnecessarily pulled in.
This is the dependency refactoring work.
* Shane's zope.pipeline work.
I'm pretty pleased we have all of this going, as long as we keep it up. :)
That we need to clean up the framework became clear to me much before
Chris started pointing out things in the "whatsitdoing" benchmark
though, but earlier discussions about Repoze (in particular with Tres at
DZUG last september) did help shape my ideas.
> Repoze stuff typically tries to simplify each component in the set of components
> used to service a goal, sometimes at the expense of at least some backwards
> compatibility or excessive configurability. On the other hand, Zope3 and Grok
> tend to keep backwards compatibility and configurability sometimes at the
> expense of verbosity and extra runtime expense. They are just somewhat
> different goals. Repoze stuff therefore has the major advantage of not needing
> to carry around 6-10 years of backwards compatibility baggage; it owes any 20-20
> hindsight in these cases of course directly to Zope.
I do believe we can move the existing Zope Framework forward quite a bit
in the right direction too. Perhaps we'll have to give up some
backwards compatibility, but we can probably keep most of the code
working. We haven't been afraid to break things occasionally with Grok
but we've found that with good upgrade notes we can keep the pain to a
minimum.
This work should also result in more reusable components for Repoze and
more use of Repoze components within code that uses the Zope Framework
(such as Grok), so that should make us all happy. :)
Luckily we're not starting with a very bad situation here. We have the
benefit that the Zope Framework (and Grok) are made out of pieces that
are at least *somewhat* tractable and replaceable.
Regards,
Martijn
More information about the Zope-Dev
mailing list