To pour fuel on the flames...
1) For 'quick and dirty' demos and
rapid application prototyping DTML does the trick (yes, even including
ZClasses), it is fast, easy, reasonably robust and it works!
2) For 'heavy lifting' (ie. intense
computation, high loads, etc.) I prefer a 'product' approach.
3) For client-side
functionality/control I prefer an
plus server-side python scripts/external methods/products.
ZPT is a bit of a hybrid
which increases overhead and doesn't really bring any new functionality
to the table (for my applications and environment). Yes, for
separating (well, mostly separating) content from display formatting
ZPT is one possible solution, but the divorce of content and
presentation is better achieved with an AJAX type of approach.
I think Zope beginners would be
better off using DTML (easier to learn, user's get quicker results and
therefore have more satisfaction with Zope as a development platform),
and then 'serious' development should be done using an AJAX approach
with Zope 3 - the way of the future imho :-)
If we had to make a choice for the
future I would prefer Zope 2 + DTML and Zope 3 + AJAX (and consign ZPT
to the 'good idea at the time' bin). Possibly, in the distant future,
AJAX utilities/ides will exist which will make rapid prototyping and
'quick & dirty' demos feasible, in which case Zope 2 + DTML could
fade into happy history.
Just my 1-1/2 cents.