Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
Programming Books Media Book Reviews IT Technology

Zope Bible 94

Reader the_rev_matt writes with this review of Hungry Minds' Zope Bible. He finds both merit and shortcomings in this book, and suggests that "Bible" may be too grand a word for this decent-but-spotty work. Read on for his reasoning.
The Zope Bible
author Michael R. Bernstein, Scott Robertson & the CodeIT Development Team
pages 613
publisher Hungry Minds
rating 8
reviewer the_rev_matt
ISBN 0764548573
summary An in depth look at extending Zope with Python.

Part One is the basics, which anyone familiar with Zope can skip over if they so choose. For a newcomers it may seem a little overwhelming, but for readers unfamiliar with web development it may seem a light on details at times. It opens with the obligatory "History of Zope" which is mercifully brief and includes a single paragraph on the history of the Internet that publishers still insist on including. It does mention some great high-profile organizations that are using Zope (Red Hat, NASA, Bell Atlantic Mobile, CBS, and the U.S. Navy). The Features section could be used to great effect in selling the use of Zope to management, as it is brief and to the point and focuses on things that businesses actually care about. Next up is Architecture, and the Bible does a fine job of describing the Zope architecture and highlights the primary advantages in nice bullet points (Cost of ownership, RAD, reliability, scalability).

Installation is covered with proper dispatch and goes into great detail about the ZServer (the preferred web server) as well as how to install new products and troubleshoot bad installations. The basics of the Zope Management Interface and the Control Panel are covered in chapter three.

Chapter Four is where the meat starts. This is a fairly in-depth presentation of DTML, Zope's built-in markup language. It includes a nice reference to Python modules natively available in Zope, and examples of all standard tags in action. Closing out Part One is a chapter about Object Oriented Programming in Python. It is less detailed than the documentation and tutorial that come stock with Python, and anyone who plans on getting that down and dirty will want to get a real Python book. Those 50 pages would have been better used in providing a case study or two of developing an end-to-end web app in Zope. Even given the focus on writing things in Python, this section isn't actually helpful.

Part Two begins with an example of writing your own Zope product in Python (though not one that actually does anything useful), rapidly followed by the process of creating a real product in Python. Given the detail and scope of the AddressBook products, there is no need for the first "create a product" example. Chapter 8 continues with adding functionality to the AddressBook product.

Chapter 9 is Zope Product Security. This chapter explains both what Zope will and won't do for you, and how to determine security requirements and policies. Chapter 10 finishes up the AddressBook application and explains the use security concepts to control levels of access. The order is slightly awkward: it would have made more sense to introduce security concepts before going down the entire create-a-product path, rather than take a side trip in the middle.

Part Three: Management. Not PHBs, but application management. This starts off with Content Management. If you remove the specific Zope examples, you have what amounts to a best-practices guide to web development regardless of language. This is a Good Thing(tm). Database Management assumes zero familiarity with databases and provides a nice basic intro to databases and specifically how to connect assorted DBs to Zope as well as how to integrate SQL with DTML. The last part of the triumvirate is User Management and Security. This section covers the basics (users/roles) and a very light taste of addons, but really could stand a bit more breadth.

Part Four is called Advanced Zope Concept, or "everything that doesn't really fit anywhere else." ZClasses can hardly be considered an advanced concept, especially when compared to rolling your own product in Python. Zope Core components is a compilation of basic OO concepts (acquisition, persistence), the ZODB, ZPublisher, and Document Templates. This is another section that could have been better served by more detail. DocumentTemplates is breezed through with no detail whatsoever.

Scripting Zope demonstrates once again how to extend Zope using Python and covers scripting with Perl in just under two pages.

ZClasses, which have in the past been the most common method of writing Zope products, are discussed in fair detail, including a nice comparison of ZClasses -vs- PythonProducts.

Chapter 17 covers searching, describing how the ZCatalog works and how to leverage it. Zope Page Templates warrant their own (very brief) chapter which explains the shortcomings of DTML (HTML-editor unfriendly, not renderable, mixes presentation and logic) and gives a decent overview of the new PageTemplates that are meant to replace DTML in many instances.

Debugging is another light chapter, though it does cover the essentials fairly well. Finally comes Alternative Methods of Running Zope. This, as you might expect, explains how to use Zope with Apache/IIS and also addresses scalability, with a focus on Zope Enterprise Objects.

The appendices consist of What's On the CD-ROM and Installing Zope from the Red Hat RPMS or Souce Code.

What's Bad?
Zope Bible is a misnomer. There is a lot of great information here, but many sections are to shallow to be of any use. A more appropriate title would be "Python for Zope" or "Advanced Zope Development with Python." The book claims to be aimed at beginning to advanced users, but it is not organized in a manner that will be useful to Zope newbies and the things a beginner needs to know most often are missing or covered in such little detail as to be as good as missing. They could have dropped the first three chapters, and used that space to flesh out some of the later chapters and perhaps do a second case study.

What's Good?
The sections that are good are very good. The authors obviously have a deep understanding of Zope, and I didn't catch any technical errors. The writing is clear and effective. If you're already familiar with Zope and already have The Zope Book and The Book of Zope, then this would be a great next book for getting more into the Python parts of Zope. I particularly liked that they built an actual useful product from end to end in the course of several chapters explaining how different features of Zope can be used. The reference sections on CM and DBM are great. It's nice to see some aspects of Zope that are woefully underdocumented get addressed (Templates, DB integration, Security, Searching) even if some of them aren't in as much detail as I'd like.

You can purchase the Zope Bible from bn.com. Want to see your own review here? Just read the book review guidelines, then use Slashdot's handy submission form.

This discussion has been archived. No new comments can be posted.

Zope Bible

Comments Filter:
  • by Anonymous Coward on Monday April 22, 2002 @11:04AM (#3387322)
    Just curious as to why this story was classified as PHP when Zope is Python . . .
  • Zope isn't PHP (Score:1, Informative)

    by Anonymous Coward
    Zend is PHP, Zope is Python.
  • I know, one doesn't know until doing, but I honestly am trying to figure out whether to use Zope or not. Most of the sites I work with right now are about internal data presentation and have very little involvement with individuals that need to customize sites often.

    Does anyone have a short and sweet description of where Zope really turned out to be an awesome tool?
  • by glwtta ( 532858 ) on Monday April 22, 2002 @11:22AM (#3387431) Homepage
    to be rather lacking. I never even consider them when I am looking for a book on something, anymore. I just go straight for the Wrox and O'Reilly offerings (in that order, actually).
    • I have quite a few (computer-related) books at home and I mostly agree with you. O'Reilly and Wrox are usually quite good although it's important to note that they are quite different.

      Of the 20-odd O'Reilly books that I have, most are quite good. The same applies to Wrox although Wrox's are usually more "tutorial-like" and as such better for a begineer. I feel the animals are usually more in depth and the writting is somewhat better (probably explained by the fact that there's 20 authors on a typicial Wrox book).

      My only other complaint about Wrox is that it looks like they reduced the quality of the paper they use latelly.

      All in all, both are goods and are my first choices except where there is some high quality hardcover available.

      Bible books are a big no-go as is mostly everything that starts with "exceptionnal", "bible", "unleashed", "dummies", "whatever".
      • What I've found works well, is getting one of those monster hard-covers that Wrox puts out, when just starting in a new area, so you get something very comprehensive, if not detailed. And the filling in the rest with more "targeted", smaller animal books. For example, "Professional Java Server Programming, J2EE Edition" has been an amazing resource getting into this whole J2EE thing, mostly because it has damn near everything in it.

        Btw, is it just me, or does the guy in the second photo from the left in the bottom row on the cover of that book, look like Jason Mewes (aka Jay of Jay and Silent Bob)?

        • I agree with you. I don't have "Pro. Java Server Prog. J2EE Edition" although I do have "Pro. JSP 2nd ed.". Is it any good ? I really liked their JSP book and was wondering if this book offered anything really important once you know about java/jsp/servlet/javabean.

          As for the author, I wouldn't be surprised :) They must have a hard time finding all those unknown authors everytime to publish a book.
    • One exception, the 'Bibles' on Macromedia products. These books had a good reputation in the Macromedia newsgroups, the authors participated heavily in that community (and I imagine they participate in the web forums) and the books did a good job of moving from the basics into advanced topics.

      But some of the other 'Bible' titles that I purchased based on that good experience were right in line with your opinion, lacking is actually rather kind...

    • Yeah, I've always felt the same way with, "If you have to *call* yourself the 'Bible' on the subject..." Tech books are titled "Bible" by the techs that use them... just seems like some marketer found out and said "hey we'll call this the Bible ahead of time and maybe techs will do the same!" Similar to how Howard Stern started saying he coined the phrase "King of all Media" so that people would start calling him that.
  • Silly Bibles (Score:3, Interesting)

    by fm6 ( 162816 ) on Monday April 22, 2002 @11:24AM (#3387440) Homepage Journal
    Ever since the success of their For Dummies series, CDG has been brand-obsessed. So they changed their name to Hungry Minds, designed a silly flying pig logo, and started using "Bible" in all the titles they publish under their own brand. It's just marketing -- it has nothing to do with content.

    Lots of computer books start with a title and go from there. I've heard more than one author say, "Hey, this is the title I was told to use. Somebody thinks the book will sell better if it has 'Advanced' or 'Power User. in the title.

    • I was writing a book for IDG at the time they bought Hungry Minds.

      1) The old name was "IDG Books" not "CDG"

      2) They didn't change their name, so much; they bought a pre-existing company and used the name. The pig already existed.

      3) Your chronology is all wrong, and nothing especially changed when they bought Hungry Minds.

      4) They publish many series of books, most of which don't include the word "Bible" in their titles. Several of their current series use the word "Visual" as a theme.

    • As the saying goes, "Don't judge a book by its cover".... we must add, "Don't judge a book by its title."

    • how about
      "Zope for you"
      "PHP for you"
      "Perl for you"

      GNU/for you

  • Hey (Score:1, Offtopic)

    by glwtta ( 532858 )
    they do fix up their snafus every once in a while!
  • The Zope Book (Score:5, Informative)

    by casio282 ( 468834 ) on Monday April 22, 2002 @11:26AM (#3387453) Homepage
    For a great introduction to Zope, I recommend The Zope Book [zope.org] by Amos Latteier & Michel Pelletier.

    It's released under the OPL [opencontent.org] and both an HTML version [zope.org] and a PDF version [zope.org] of the book are freely available.

    • Re:The Zope Book (Score:4, Informative)

      by MartinB ( 51897 ) on Monday April 22, 2002 @01:35PM (#3388337) Homepage

      While it is wonderful that it's free, the Zope Book suffers from a lack of understanding of where new Zope users start from. The outline concepts are reasonably well explained, but there's next to no code samples to show you how DTML works (think of the ORA camel and llama books by contrast). It's very much written by deep experts who haven't been able to think back to the learning paradigm.

      Or, in other words, it's really not worth paying for a dead tree version.

      Other Zope books such as the Zope Web Application Kit are nothing more than how to install CMF and other popular products if we've got time (actually, much of the Zope world is CMF obsessed - not all sites fit into the CMF community publishing model...)

      If this book actually does what it says on the tin, it will be a welcome addition to the bookshelf.

    • I've just thought of a good title for a Zope book for beginners - not Zope for Beginners, or Zope for Dummies but Zope for Dopes! :o)
  • I find it very difficult to read. I have difficulty reading more than a couple of pages before wanting to put it down.

    More a reference book I think.

  • The name 'Bible' is condescending. It implies that the book is the be-all, end-all. Why can't it be a 'tome' or "big f'n guide to zope"? I like Python as much as the rest of you, but why is every big book a 'Bible'?
  • I have found that if a book is call "bible" by its author/publisher, it never is (not that I have see, anyway; flames/exceptions to /dev/null ;-).
    If it is called "bible" by users, it usually is.

  • ah, zope (Score:2, Informative)

    by Anonymous Coward
    I used to develop for the ACS, which in some ways was regarded as a direct competitor to Zope, to the point that a Zope user wrote up a pretty even-handed comparison between the two. He said things like, "Well, we have the ACS beat on feature X, but they have us beat on feature Y." At that point, I would look over at the sorry state of feature Y on our system and think, "Wow, if feature Y scares them then our FUD is working."

    I remember the first time I installed the ACS, I was impressed with the out-of-the-box functionality. But after getting on the inside, I learned that the ACS was little more than some threaded discussion lists, user scripts, and a moderately beefy intranet module. Looking back, I could have written the whole thing myself, and in fact we did on our client projects, where the ACS was eventually overwritten with custom code. A good starting point, perhaps, but not much more.

    If that wasn't bad enough, the ACS went towards an object model, proprietary markup language, and content management - just like Zope - which promply drove the company out of business.

    I wish the Zope team luck, they probably made more correct design decisions than we did. They survived long enough to put out two books. But to me, web toolkits are kind of like white elephants. They promise glory but in the end they are just massive, hungry, messy beasts.

    • If that wasn't bad enough, the ACS went towards an object model, proprietary markup language, and content management - just like Zope - ...

      Just to clarify, Zope doesn't use a proprietary markup language and started with an object model.
  • "Bible" may be too grand a word for this decent-but-spotty work.

    I dunno, I thought the original bible had some interesting stories but was overall pretty spotty and even contradictory at times.

  • by Arkham ( 10779 ) on Monday April 22, 2002 @12:10PM (#3387739)
    Zope has to be one of the coolest open-source projects I have ever used. You can literally build a site from scratch to completion in a matter of hours or days (depending on complexity) if you know what you're doing.

    I used to work for a company that built a very large ZCatalog-driven site (with over 300,000 items in the ZCatalog, interfacing to an Oracle backend with over 3 million items). Zope was an excellent development platform, and I still use it on personal projects.

    The biggest thing keeping Zope for blowing other products like WebLogic and StoryServer out of the water is the steep learning curve. It took me a good month to get up to real speed on Zope, and I had a background in python. Zope relies on some very powerful base-class "magic" to make everything work, and some of that behavior is hard to grok (acquisition, ZClass/Python-class dichotomy, the ZCatalog, the BTree implementation, and the various ZODB Storage options come to mind).

    At the 2001 Python conference, the Zope-Corp (nee Digital Creations) folks said the learning curve was a high priority for future releases. I hope so, because Zope and python are great technologies for those who make the time investment necessary to learn them.
    • I found it very easy once I gathered enough knowledge of which online resources provided the best answers to my questions. These would be zopelabs.com and searching the email archives (not using the yahoogroups brain dead interface but the other search link) at zope.org. These plus the zopebook made learning zope easy and fun. I love zope page templates...
  • This seems like a good place to mention Squishdot [squishdot.org], a weblog product for Zope. Its claim to fame is that it looks quite like Slashdot, though it is missing some features.

    If you're looking to build a stripped-down slashdot-like site, Squishdot and Zope may be the answer.

  • by aquarian ( 134728 ) on Monday April 22, 2002 @04:09PM (#3389509)
    I'm sure Zope is much simpler than it looks, and after working with it awhile, you get to a point where it's all crystal clear. But I could never get to that point- everything is obscured by silly new paradigms, acronyms, and taxonomy. It's all just too zilly for me. After ztruggling with Zope for what zeemed like a zentury, I picked up OpenACS [openacs.org] and built a website with it in about three weeks.
  • by jpenny ( 134288 )
    First, zope is relatively complicated. It can be used to cover a lot of ground. It has an object database, four scripting languages (DTML, python, TAL/METAL, and by extension perl), database connectivity to many SQL databases, and a couple hundred plugin products, including products which allow access to filesystems, a document library, various problem trackers, xml-rpc, xml, email, etc.

    This means that a good zope developer has to know quite a lot.

    The problem that is now facing beginners is that the toolset is rich enough and the advice offered is disparate enough that they are ususally confused for quite a while.

    DTML is ugly, is no longer encouraged, etc. It is also easy to pick up. You really want to use only dtml-var, dtml-in, and maybe dtml-if.

    TAL/METAL is an XML dialect that is supposed to be GUI designer tool compatible and still allow limited program expressiblity. This is what most of the gurus use now, rather than DTML. To my eyes, it is even uglier than DTML.

    For more complicated constructs, use Script (Python) methods. Most of the power of python, reasonable attempts are made to keep programmers from accidentally opening security holes.

    If you need more power than that, and carefully think about security, python is avaliable in external methods. The biggest issue here is that no security checks are made and the programmer must have write access to the file-system; something that is not required for Script (Python).

    And finally, you can build your own extensions, most people seem to be using pure Products, these days. There are a couple HOWTOs on the process.

    With this number of independent choices (ZOBD/filesystem/SQL database), (DTML/TAL/Script (Python)/External Method/Product); and with the number of things that you have to worry about with a number of different kinds of people zope is targeted at (website designer, DTML/TAL developer, python developer, SQL administrator/developer, product developer, core developer), it is no wonder that these books are a bit schizophrenic and skip from high point to high point.

    My best advice is that 1) if you want to be anything other than a website designer, you better know HTML very well. 2) Do something like a simple phone book application. Pick one programming language (DTML/TAL/python), and one data store (ZODB, SQL, filesystem). Try to learn as little as possible. It will probably take you about ten days; and you will be ready to chuck the mess out the window. 3) Now, throw everything away. Do your phonebook again, without refering to anything in your old design. You will probably find that you can do it in about 4 hours. When that point comes, you find that, yes, the initial headaches are worth it; and that, most of what you learned ended up not coming from the book anyway.

    As a final remark, the phone book exercise is worth repeating every six months or so. Use the same toolset, or a new one. Think of ways to generalize it, sort orders, reverse lookup, etc. You will be astonished at how much better you get and how much the choice of problem influences the choice of toolset!

  • For those who want to whett their Zope appetite, try www.freezope.org a cool free zope hosting site, allows you some control through DTML, and python scripts.
  • When I first saw Zope, it was as a "collaborative development platform". After over 2 years of using it, I still only have half a clue.

    Paid to be a "helpdesk analyst" for proprietory POS software and not to code, I've been learning Zope for over 2 years. In another year, I'll be ready to build a full python Product. Most of the lag is the free time issue, some is development process.

    I'm glad I've read this review before seeing it on the shelf. I've bought _The Zope Book_ and _Zope Web Application Development Kit_ and have found both only partially helpful. The DTML reference in TZB, once helpful, is now older than the publishing process with ZPT/TAL seems to be "the way to go".

    Stated elsewhere, I think my next Zope book will be by O Reilly. I'm beyond the basics, and am in need of a good reference book, not selected chapters/parts of several books.

    All in all, Zope works well and provides a suitable collaborative development environment, and the price is right (GPL). It's also a great introduction/immersion into object oriented programming.
  • A reviewer at infoworld.com suggested that Zope was built by "OOP Zealots" (paraphrased) instead of with practicality in mind. (Sorry, I cannot find the article anymore. It is roughly 18 months old. If I find it again, I will post a link.)

    Why try to reinvent OODBMS' when the market has rejected those silly, contorted things? When OO hype builds up OOP product sales, you zealOOts claim victory, but hypocritically keep hugging OO technologies, like OODBS, that the market has pissed on.


    And, just because I don't like OO does NOT make me a troll. One can hate MS around here without getting modded down, but mention OOP, and kaboof! from the evidence-free OO-cliche lickers. Mod me down ONLY when you have fricken evidence that OOP is objectively better in all domains.

MESSAGE ACKNOWLEDGED -- The Pershing II missiles have been launched.