[XML-SIG] Python / XML / XSLT vs. Cocoon for website server side

Craeg K Strong cstrong at arielpartners.com
Sat Aug 16 18:17:46 EDT 2003

I did not consider the other frameworks you mentioned.  One of my 
biggest concerns was a large and active user/contributor
base, and copious documentation.   Check out the zope.org site, and you 
will observe new Zope plugins getting created at a rate of several per week.
Few other platforms can match that: Perl, PHP, Java, Microsoft.  I 
prefer a real language, so PHP is out.  I prefer Python to
Perl, so that's out.  Java is great for the back-end, but too cumbersome 
and verbose for the front end.  I want to avoid
lockin, so Microsoft is out.  That leaves Python/Zope by a process of 

Here is what I use/recommend today for Zope:

- Adaptive Persistence (APE) gets you from Zope to RDBMS, file system, 
CVS, etc.

- ZopeXMLMethods gives you XPath, XSLT, DTD Validation

You can start with bare Zope 2.7 or Plone, depending on your needs.  
Plone is maturing really rapidly,
and the documentation is getting better.   This means that the cost vs 
benefit ratio for adopting Plone is
getting more and more favorable.  I am still using bare Zope myself, but 
would probably recommend Plone
to my corporate customers.

I use Zope Page Templates for all presentation.  Many of my web pages 
have no reusable content to speak of,
and they are just straightforward ZPT.  However, all reusable pieces of 
content are in XML, stored under
version control in CVS.  I grab what I need using ZopeXMLMethods.  It 
enables me to grab pieces from
multiple XML sources via XPath and transform them with XSLT.  It is a 
wrapper/adapter that works with most
of the XSLT libraries you mentioned (4suite, libxslt, Pyana, Sablotron).

Sounds great, what's the catch?

Well, there's still lots to do.  Here is what I am working on:

- extend ZopeXMLMethods to cover other pieces of the XML spectrum (RDF, 
XInclude) and improve its use of the
underlying libraries (especially libxslt)

- extend APE to seamlessly adapt to VSS, Clearcase, CVS, etc., provide a 
layer on top for actual checkin/checkout
directly from Zope

- work with Norm Walsh to help streamline Docbook/XML (aka Docbook 5.0) 
for better ease of use

- select a technology to adapt from MS Word directly to Docbook/XML and 
enhance it with the ultimate goal
of non-lossy round-trip support (there are many free and commercial 
candidate technologies)

- Create another Zope adapter to the Java-based FO-to-PDF libraries, 
including FOP and RenderX/XEP.  Make this
adapter work just like ZopeXMLMethods or Plone Archetypes.

I think you see where I am going here.  With all of the above, you get 
Zope as a CMS platform able to consume
and produce content in any format, with full standards support (no 
lock-in).  Of course, one must learn Python and ZPT...

Incidentally, I recently compared ZPT to JSP/JSTL/JavaServer Faces and 
was appalled at the cruftiness of the
Java solutions.  ZPT is *way* cleaner and easier.  Learn ZPT and you 
will understand where JSP technology might be in two years.

Hope this helps,


Richard Johannesson wrote:

>Good article you put together - very informative. It definetly helps - now
>I'll have to take another look at Zope.
>Does Zope make it as easy to keep a strict seperation between the content /
>presentation / business logic that Cocoon promises? Were you able to
>implement the XSLT transformation in Zope with your modifications that
>Cocoon offers? If you were forced to move to Cocoon - how much recoding
>would be needed? 20%? 50%? 80%?
>Did you consider any of the following [+my impressions]:
> Webware? [very nicely done, concerned not large enough user community -
>prefer XSLT over PSP]
> Quixote? [seemed like to choice, but prefer standard markup like XSLT]
> CherryPy? [prefer XSLT]
> Spyce?
> Cheetah?
> Mod_python? [will use in production release]
> Albatross? [?]
> Twisted? [?]
>Which XML libraries did you decide to use?
> Pyana? [seems useful]
> PIRXX? [seems redundant]
> 4Suite? [top condender]
> PyXML? [seems like a must]
>Thanks again,

More information about the XML-SIG mailing list