[Zope-dev] Dependencies and future of zope 3

David Pratt fairwinds.dp at gmail.com
Tue Sep 2 20:54:50 EDT 2008


Hi there. I have been developing with zope3 for about 4 years and would 
like to see zope continue in a healthy way into the future. The last 
couple of years particularly have brought significant change in how we 
deploy zope particularly with wsgi with or without the zodb. In 
addition, there is a increasing plethora of lightweight frameworks 
emerging to compete with mind share and feel zope is loosing ground in 
this respect.

I am feeling increasing pressure and frustration to re-examine what I am 
doing. Zope has a wonderful code base but it is spread through many 
packages in the form of dependencies. As a result, a small app in a 
working z3 setup can start off at almost 50MB while the similar app on a 
competitive framework may be as little as 15 - 20 MB. To some extent, 
there is complexity in the politics of change needed since zope is 
largely consumed as packages by z2 (Plone). So the impetus for change 
may be less than favorable for those consuming packages in Plone as 
opposed to a developer interested in creating larger scale apps purely 
from zope 3 and other python packages.

The key concern is dependencies. There have been efforts I realize to 
settle some of this over the past but in reality the volume of zope 
packages that comed together for a base build is 'pulling in the world' 
as i have heard it referred to many times. The testing setup is another 
major factor in this and the changes controversial over the eliminating 
the testing framework as a dependency of zope eggs.

I guess the simple solution is well it you don't like it, use the 
another framework. Its not quite that simple since I am extremely fond 
of the CA architecture and have a strong desire to continue with it in 
some form or another into the future. I think what I am sensing more 
than anything is a need for zope to adapt a changing reality.

bfg is a relatively new framework that builds on wsgi and zope 
technologies but is an example of what can be achieved if you consume 
only what you need. It is attractive in a number of respects for zope 
developers since it offers simplicity and development speed with a 
lightweight footprint. I believe much of what is being accomplished in 
bfg could be accomplished in zope if it were tighter and we could focus 
on a leaner core of packages void of the large number of dependencies. 
The grokcore packages can help with the simplicity development but do 
little for the dependency issues.

I think there are couple of options. One option would be to set about on 
a course of change to do something about this with the existing 
codebase. Another option is to create a core of leaner packages that 
could result in a much smaller, tighter core that can be competitive 
with the changing python landscape. bfg is currently taking the option 
of selectively forking some of the packages such as zope.catalog as 
repoze.catalog for example. Personally, I would like to see these 
changes occur in some way within zope. In any case I am interested in 
hearing from folks about what can or ought to be done or whether there 
is interest in this direction. Many thanks.

Regards
David


More information about the Zope-Dev mailing list