Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>+1 on Wheat's answer, above: "Zope 2 is really only interesting to learn from a historical perspective". I did Zope dev for a large site for a couple of years, 50% zope 2, 50% zope 3. Even then (this was 2 years ago) we were working to migrate everything off of zope 2. Unless you already have a lot invested in an existing Zope 2 project, there's no reason to use it; there's just not much of future there. And if you <em>do</em> have a big existing zope 2 project, I'd suggest taking a look at a product caled <a href="http://codespeak.net/z3/five/" rel="nofollow noreferrer">Five</a> (a joke: 2 + 3 = 5) that aims to </p> <blockquote> <p>allow you to integrate Zope 3 technologies into Zope 2. Among others, it allows you to use Zope 3 interfaces, ZCML-based configuration, adapters, browser pages (including skins, layers, and resources), automated add and edit forms based on schemas, object events, as well as Zope 3-style i18n message catalogs.</p> </blockquote> <p>When all is said and done, Zope 3 is a very different framework from 2, and IMHO, a much better (albeit more complicated) one. TTW is <a href="http://wiki.zope.org/zope3/ThroughTheWebDevelopmentInZope3" rel="nofollow noreferrer">optional</a>, and not recommended for most cases. Implicit acquisition is gone. </p> <p>Looks like people here have covered why you might want to use the ZODB, so I thought I'd mention one other thing about Zope 3 (or Zope 2 using Five) that's good. Zope has a very powerful system for wiring together different application components called the <em><a href="http://www.muthukadan.net/docs/zca.html" rel="nofollow noreferrer">Zope Component Architecture</a></em> (ZCA). It allows you to write components that are more or less autonomous and reusable, and which can be plugged together in a standardized way. I mostly do Django development now and I sometimes find myself missing the ZCA. In Django, the ability to write reusable components is limited and kind of ad-hoc. But, like Reinout says zope.component (like most zope packages, including the ZODB) works outside of the zope framework and could be used in a Django project. </p> <p>That said, the ZCA has its drawbacks, one of which is the tedious process of registering your components in XML files; it always felt a little Java-esqe to me. One reason I really like <a href="http://grok.zope.org/" rel="nofollow noreferrer">Grok http://grok.zope.org/</a> is that it sits on top of zope.component and does much of that grunt work for you. </p> <p>So bottom line: Zope 2 is mostly a dead end. If your employer is amenable to it, start looking at Zope 3, or at least Five. I think you'll find Zope 3 has a steep learning curve compared to Django, so it might be a good idea to come at it via Grok, which smooths out a lot of Zope 3's rougher edges. But, I think for a really large or complex web application with lots of moving parts, I'd go for Zope over Django (and I say this as someone who really likes Django a lot). For smaller projects, Django would probably be faster. Quantifying "large" and "small" in this context is hard though, and would probably require a couple of thousand more words. If you really are interested in Zope 3, the <a href="http://worldcookery.com/" rel="nofollow noreferrer">book</a> by Philipp von Weitershausen is definitely the place to start. </p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload