Also in Python News:
John Udell once described Digital Creations' Zope as Python's killer app, the application that was going to have everyone scrambling to learn Python. It hasn't proved to be much of a killer though. Web designers looking for solutions to their documentation management problems routinely dismiss it as overkill, developers as underkill, or too hobbling. Designers are probably more intimidated by DTML, the extended markup language used to mix code and HTML, than they are by Zope itself. Python developers, on the other hand, often reject Zope's mixed up DTML as a gooey mess when it comes to doing anything moderately difficult. Almost everyone complains about the poor documentation. Python developer Andrew M. Kuchling sums up many of these points in his article Why Not Zope? For Kuchling it was easier and faster to start from scratch than to wrestle with Zope.
That's the bad news. The good news is Digital Creations has hired people who know development tools. It recently hired the Python development team away from BeOpen. With this new talent on board it should be no shock that Amos Latteier recently published a Zope Directions Roadmap stating that Zope is shifting its target audience from content managers to developers. They will henceforth focus on Zope itself as a web development platform. Not to leave out content managers and web designers, the content management tools for Zope will have their own separate development process and be available as an add-on web-programming framework for the Zope platform. The portal toolkit (PTK), which used to be an integral part of Zope, is now being developed as the Content Management Framework (CMF) for the Zope development platform.
Among general promises that Zope will become, like Python, a simple, easy to learn, rapid development tool, the Roadmap also provides details on how the architecture will change. A few of these address Kuchling's concerns. They will phase out DTML in favor of Python and Perl scripting to handle logic and XHTML to handle presentation. They will use a CVS-like revision control system to manage site development. They will use the native file system to store code rather than keeping it in a database. The biggest change, however, is the proposed component architecture. Components in Zope will be functions or classes that implement an interface. An interface is a defined behavior. Using interfaces, you can separate inherited behavior from inherited implementation (classes).
Interfaces have already been introduced in Zope 2.3, while the rest is still in the works. It is clear that Digital Creations is listening to its critics. They have acquired a great development team. If they follow their roadmap, Zope may yet emerge as Python's killer app.
Stephen Figgins administrates Linux servers for Sunflower Broadband, a cable company.
Read more Python News columns.
Copyright © 2009 O'Reilly Media, Inc.