[Zope-dev] Open Letters and Zope 3
Shane Hathaway
shane@zope.com
Mon, 03 Dec 2001 16:46:53 -0500
Folks,
There is a lot of exciting development happening in Zope 3, which is
open to the public in CVS, and it's really an answer to many of the
concerns raised in the "open letters" in the past few days.
Here are some of the things happening:
- The structure of the Python packages has been redone. It will be much
easier to see which packages can be used independently of Zope and which
are meant for the Zope application. (There are many packages that can
be separated already, but it's not easy to figure out.)
- The new component architecture is having a very positive impact. Deep
multiple inheritance is a thing of the past. The Python code is free of
Zope framework clutter, besides occasional ZODB details.
- There are interfaces for everything from authorization to folders, so
the API is being documented as it is written.
- ZPublisher has been refactored significantly and renamed to
"Zope.Publisher". No more string exceptions, no more "maybe_webdav"
hacks, no more publishing modules. Interfaces exist and more are planned.
- The HTTP server has been redone. It is more optimized and there is a
cleaner separation of the server (now "Zope.Server") and the publisher,
making it easier to create alternate front-ends to the publisher (for
speed). There are also tuning options.
- There are unit tests for *everything*.
- We're using page templates instead of DTML.
I invite everyone to check out Zope 3X right away. But before you do,
read carefully:
We are first creating "Zope 3X", a version of Zope that is not
compatible with Zope 2. We are taking off the shackles and blazing
forward, applying the lessons we learned from Zope 2 and CMF. Soon we
will create "Zope 3". Zope 3 will add Zope 2 backward compatibility.
MINI-FAQ
========
Q: What is Zope 3X?
A: Zope 3X is Zope rebuilt from the ground up, applying the lessons
learned from Zope 2 and CMF.
Q: What is Zope 3?
A: Zope 3 is Zope 3X plus compatibility with Zope 2 products.
Q: Will Zope 3X be compatible with Zope 2 products?
A: No.
Q: Will Zope 3 be compatible with Zope 2 products?
A: Yes.
Q: Will Zope 3X support DTML?
A: Probably not.
Q: Will Zope 3 support DTML?
A: Yes.
Q: Will Zope 3X be compatible with CMF?
A: No.
Q: Will Zope 3 be compatible with CMF?
A: Very likely, but a lot of the CMF ideas will be folded directly into
Zope 3. You might not need CMF anymore.
Q: Are Zope 3X and Zope 3 licensed under the new GPL-compatible ZPL 2.0?
A: Yes.
Q: Why is Zope Corp. doing all this rearchitecting when Zope really
needs feature XX?
A: To make it easier for you, the developer. We make the flour, you
make the cake. (Zope corp. will create major components also, but the
best way to expand Zope is to empower developers.)
Q: What is the component architecture?
A: It's similar to other component architectures in that it lets you fit
small pieces of functionality together. While Zope 2 has many parts
welded together with inheritance, Zope 3 will let you take things apart
and put them together like legos. See:
http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/VisionStatement
Q: How hard will it be to migrate a product to the component architecture?
A: There are patterns emerging that should make it straightforward and
much easier than starting from scratch.
Q: Is I18N in the plans?
A: Yes. It is time to start planning for internationalization. If this
is your strength, download and get to know Zope 3X and the component
architecture wiki, get involved in the community, and please help!
Q: How can I help?
A: If you're interested in helping and you have time, educate yourself
on the component architecture and Zope 3X then volunteer to assist in
your particular area of expertise.
Q: Is there a tutorial?
A: Yes! Look at the /Docs directory in CVS. Note that it's still in
development.
Q: When will Zope 3 be ready?
A: I don't really know, but it's moving forward quickly.
INSTRUCTIONS
============
To check out Zope 3X from CVS:
cvs -d :pserver:cvs.zope.org:/cvs-repository co -r Zope-3x-branch Zope3
To check out the tutorial:
cvs -d :pserver:cvs.zope.org:/cvs-repository co -d Tutorial \
/Docs/ZopeComponentArchitecture/PythonProgrammerTutorial
Zope 3X requires Python 2.2b2. To compile the extensions, run
"python2.2 stupid_build.py". To start the HTTP server on port 8080,
"python2.2 z3.py" (it's very barebones right now; all the meat is in the
code.)
To run all unit tests in /bin/bash (over 250 of them!):
PYTHONPATH=lib/python python2.2 utilities/unittestgui \
Zope.Testing.allZopeTests
Again, this is all quite exciting and I hope you can join the action.
Shane