[Zope3-Users] Zope 3 vs Zope 2

Jeff Shell eucci.group at gmail.com
Mon Jan 9 20:31:57 EST 2006


On 1/9/06, David Johnson <djohnson at jsatech.com> wrote:
>
> We're producing a new application, and wondering, should we use Zope 3 or
> Zope 2?  Is Zope 3 ready for a production environment? While the
> architecture of Zope 3 seems much better and stronger than Zope 2, many
> parts of it seem to be a bit immature.

What kind of application are you working on? Note that on all Zope 3
releases starting with Zope 3.1, there has been this notice near the
top: "It is our opinion that Zope 3 is more than ready for production
use, which is why we decided to drop the X for experimental from the
name."

Zope 3 is in use in production environments. My own company moved one
of our biggest and oldest customers from Zope 2 to Zope 3 recently,
along with three of their sister companies. Even with extremely
limited Zope 3 experience, we were able to build and deliver a
flexible stack that delivers terrific results and updates to all four,
while also establishing clear boundaries and specialized
objects/components. This is possible with Zope 2, but often takes more
work. In Zope 3, it kindof happened naturally.

There are still some rough patches in Zope 3, but it is definitely
very capable. If a part doesn't quite do what you want or what you
expect, it's generally a lot easier to provide an alternative
implementation than it was in Zope 2 since the whole Zope 3 app server
is built around the concepts of Interfaces and Adaptation.

Zope 2 has a lot of maturity behind it, but it also has a lot of very
old cruft and a number of different attempts to deal with some of that
cruft. And while there's still a lot to like about Zope 2, I found
myself often implementing and experimenting with some form or another
of 'component architecture light' to try to get a lot of the
flexibility that I enjoy now with Zope 3. That's just my own
experience, others may vary.

You also have the option of working with Zope 2 and taking advantage
of Zope 3 technologies via the 'five' layer that's now a part of the
Zope 2 distribution, and core Zope 2 pieces are starting to take
advantage of this (real events being fired off for 'manage_afterAdd'
and other such events). It's the direction Zope 2 is heading in. But
if you don't have any prior code that you have to support, I think
it's easier to just stick with and learn Zope 3 itself than to learn
Five.

--
Jeff Shell


More information about the Zope3-users mailing list