[Zope3-dev] Specific Qs about diffs btw Zope 3 & Zope 2.x(2.7, etc)

Martijn Faassen faassen at infrae.com
Fri Jun 25 15:01:18 EDT 2004


Eric Hielscher wrote:

> I'm trying to decide which version of Zope would work best for a
> project on which I've been assigned to work.  I've personally had no
> contact with Zope before yesterday when I downloaded 2.7.1 and
> 3.0.0b1 to start playing around a bit.
> 

Basically:

Zope 2.7.1 is from a line of battle tested Zope development that are in
production by many people. You're more likely to find an extension you
already want. It has powerful indexing through the catalog, sessions,
connections to all kinds of user management systems, etc.

Now for the bad parts: The codebase has evolved and shows it, the APIs
are typically grotty and underdocumented. You will run into weird
practices for historical, obscure bugs (acquisition!) and walls of
inflexibility.

Zope X3 is a new line of development that offers a sane, flexible,
extensible codebase. You'll groan far less when reading or writing
python code; it's pretty clean. APIs are documented. There are thousands 
upon thousands of automatic tests for the whole of the codebase. 
Extensions are easier to write and you can have a lot more fine-grained 
control due to the component architecture. Its promise is awesome.

Now for the bad parts: Unfortunately, pieces are still missing and it's
not been battle tested. You'll have to invent more yourself and that may
be a lot of work. There's less community experience with Zope 3.

 From a Python programmer's perspective, I'd pick Zope 3. From a "this
actually needs to run somewhere in the real world soon", Zope 2 becomes
more attractive. It's a tough choice.

> The project involves a web page where users can upload files of a 
> specific format (zipped SCORM-conformant e-learning files to be
> exact). The system would then rip out all of the meta data and
> perhaps the full text of the files in the zip and index them for
> searching.  The MD is in XML, but we'd also perhaps like to support
> RDF and some others like RSS. Each file in the system would then be
> linked to the MD by some sort of GUID-equivalent.  Then the users
> could search the MD and text and the system would return a results
> list, and afterward repackage their content.

Sounds like an interesting project. The SCORM specifications (piles of
PDFs) scared me when I looked at them a while back, but perhaps you can
explain better what the benefits are.

> Now, I've been asked to decide which version of Zope would work
> better for this.  I would think that native XML support (which I read
> will be better in 3 but don't understand how yet) would be a huge
> plus.

While I am certain the native XML support in Zope 3 will be better when
it is there, it isn't there yet. The only XML that Zope 3 really uses
for itself is ZCML, which is cool, but that's not helping you if you
need to process XML yourself.

A bunch of us started a zopexml project last year. While it showed cool
stuff will be possible with Zope 3 and XML, it's currently a moribund
project. We've recently moved it to a new repository, and eventually I'm
bound to pick up on it again, but I cannot predict when. Here it is:

http://codespeak.net/svn/z3/zopexml/trunk/

> Also, the new ObjectHub replacement for the ZCatalog might really
> help me. Zope's native authentication services have also been given a
> huge overhaul and we'd like to leverage those as well.

Zope X3 doesn't have the equivalent of the ZCatalog. The ObjectHub 
project I think has been reconsidered and the new system is going to do 
something else, but I'm not up to date with this.

While Zope 3's authentication mechanisms are bound to be a lot nicer, 
there are far less extensions out there that hook into it and provide 
things like LDAP support, say. Of course you can write those, but Zope 2 
has them out of the box.

I'm not sure how much of the authorization mechanism is right now 
finished enough to provide things like groups. Not that Zope 2 has a 
native way to do groups, but there many extensions.

> I was hoping that someone out there with better in-depth knowledge of
>  Zope would be able to read this list of reqs and be able to tell me
> in (semi-)detailed fashion just why 3 or 2.x would be a better
> decision.

A new alternative is Five, a Zope 2 product which allows you to use some 
of the Zope 3 technologies in Zope 2 (ZCML, adapters, views). 
Underdocumented in all its glory, heavily in flux, but making great 
progress, it's here:

http://codespeak.net/svn/z3/Five/trunk/

Perhaps the best or worst of both worlds. :)

I hope my exposition was useful to you!

Regards,

Martijn



More information about the Zope3-dev mailing list