[Zope] PHP vs. Zope/Plone? Which better overall and for what?

mclinden at informed.net mclinden at informed.net
Fri Dec 17 16:23:49 EST 2004


I realize that this may not be your "stock"  answer, especially on sites 
devoted to Zope/Plone, but to me, asking the question in this way is a 
little like asking a carpenter "Which tool is better, a saw or a drill?" 
It depends upon what you intend to make.

Our company has built applications using both Zope/Plone (a Court document 
management system) and PHP (a public health site) and, to my mind, there 
is no simple answer. Among the issues you need to consider is what kind of 
activity will the site need to support, what is the size and scope of the 
project, what is the lifetime of the project (an important consideration 
when you are dealing with the rapidly changing world of web applications), 
who will maintain it and what are their skill levels. Without considering 
these in some detail, the question of which is better is unanswerable (in 
spite of what some may suggest).

As I mentioned, one of the most important considerations is the life span 
of the project. Many of the advances and proposed changes to CSS, the 
Document Object Model (DOM) and the ability to manipulate the DOM in 
browsers, XML/XSL/XSLT, etc., will change what people expect of the 
behavior of web applications five years from now. Just like practically no 
one codes web applications strictly in HTML, I expect that five years (or 
less), hence, there will be tools and methodologies far better than either 
PHP or Zope, or one or both of those will have evolved to the point where 
what you build, today, will become a significant support issue.

Zope/Plone is, essentially, an applications, designed to support the 
management of information within a given framework.  To the extent that 
this framework already incorporates many kinds of business processes such 
as collaboration and workflow, you can build many "applications" with Zope 
out of the box and with minimal programming. In some cases, however, 
frameworks can also be constraining, which is one of there reasons that 
new frameworks are always being invented.

PHP is much less constraining and much more flexible (although Python can 
certainly be extended as can Zope), but as a programming language it lacks 
even the simplest framework for building applications. There are 
commercial (and noncommercial) add-ons to PHP from companies like 
WebAssist and open source solutions from Sourceforge, but IMHO the more 
these try to look like Zope the easier using Zope becomes.

I disagree with some who suggest that you can't or won't code a large 
application in PHP. I have certainly built templates in PHP which are used 
to render database driven content and managed to support applications with 
tens of thousands of virtual pages. But, again, if such things as content 
management and workflow are an important component of your application, 
starting with PHP would put you at a significant disadvantage.

Put another way, it is very likely that 60-90% of what you want to do has 
already been done by someone and there probably exists one or more open 
source implementations. Characterize your application and its requirements 
and then look for something that gets you most of the way there, with 
little in the way of programming. Then be sure that what you pick as your 
60% solution can be extended to address the other N%.

Chances are you won't want to start with PHP, but then again, you might. 
If your application requires many different types of behaviors with very 
few stereotypic operations, you may want to use a programming language 
rather than a framework such as Zope.

Sean McLinden







More information about the Zope mailing list