The Book of Zope
Zope, an open-source application server, has become an increasingly popular choice for web development in the last few years. Zope Corporation, formerly known as Digital Creations, has gone to great lengths to prove their commitment to the Open Source community and has encouraged Python and Zope developers around the world to spread the Zope gospel. The fact that Zope is written mainly in Python has given a boost to the worldwide Python community, providing what may indeed be the “killer app” that brings new people into the Python fold.
While Zope is an extremely powerful system for creating web applications, it also can be daunting to new users. Its paradigms are quite different from other web development systems, in no small part because of its heavy reliance on objects. If you are not comfortable with classes, instances, instance variables, class methods and instance methods, the learning curve for Zope is even steeper than otherwise would be the case.
While the Zope documentation has improved considerably over the last few years, and while many zope.org members have contributed their own documentation, tips, code and tutorials, there is still a need for solid introductory texts for learning Zope.
The Book of Zope aims to fill this niche. It was written by a number of programmers at Beehive, a web development company with offices in Berlin and Washington, DC. The book is an English translation of the original German version and reads better than I expected for a translation.
The Book of Zope covers most of what a beginning Zope developer will need to know. (While some of the chapters may be useful for designers and other nontechnical people, nonprogrammers probably will have a difficult time understanding many of the items in it.) Initial chapters describe how to navigate Zope's management screens, DTML (the server-side programming language that can be used to implement functionality without having to write Python programs) and permissions with users and roles.
The book then begins to cover more complex ground, describing ZClasses, SQL connectivity and Python scripts. There is even a chapter on Zope products, introducing the notion of a product and how to write one of your own in Python.
The Book of Zope covers everything that you might expect in a book of this type and does so thoroughly. But as I was reading it, I felt that something was missing: a sense of perspective, helping the fledgling Zope programmer to get “Zope Zen”, an intuitive sense for how Zope works. The book's text was informative, and its numerous examples were clear, but I wish that there had been more pauses to explain where each technology fits into the scheme of things, rather than simply introducing them.
The Book of Zope is a good complement to on-line Zope documentation and probably will be most useful to programmers who want more direction after experimenting with Zope on their own. Someone who is completely new to Zope might benefit from this book, but they may find themselves confused and frustrated.