Content Management Systems

Zope is an application server written in the Python programming language. Above it one can write web applications, content management systems, etc.



When we wanted to set up a new site for the Israeli Group of Linux Users, someone decided to set up Zope (an early version 2) there. One thing we noticed is that besides posting articles to Squishdot, no one besides her knew how to make heads or tails of the system. Zope came as a huge binary package which ran as a dedicated server along Apache. When we wanted to implement a simple jobs tracker, we tried to connect Zope to MySQL, but it turned out to require re-compiling Python, Zope and an extension to do so. We ended up implementing the jobs tracker as a simple set of Perl scripts.

When I tried to upgrade Zope, I discovered that many of the installed extensions were no longer available, and that Squishdot required a large number of manual steps to be upgraded from the version that we had to the most up-to-date one. This delayed the upgrade process.

Eventually, someone discovered a cross-site scripting attack in our setup, and to promptly deal with it, we decided to switch away from Zope to PostNuke which we had been using since until the server went off. (I can no longer recommend PostNuke, but it was still easier to manage than Zope). We also ended up writing a Perl script to fetch the old articles from there and render them as static HTML.

In short, Zope turned out to be hard-to-understand, poorly documented, hard-to-upgrade, and all-around frustrating. I decided to never use it again.