[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