This post originated from an RSS feed registered with Python Buzz
by Carlos de la Guardia.
Original Post: Plone performance and the future of ZPT
Feed Title: I blog therefore I am
Feed URL: http://blog.delaguardia.com.mx/feed.atom
Feed Description: A space to put my thoughts into writing.
With all the interesting work on Plone's server side speed during the Performance Sprint this past weekend, there's a good chance the 'Plone' and 'slow' word association pair will not be triggered as much in the future in the minds of Plone developers.
While some of the experiments tried at the sprint seem to me a little wild (hand compiled templates, anyone?), from what I can tell there are still some changes that may even be applied to existing Plone 2.5 and 3.0 sites when ready. Let's hope there are many of those.
One thing which everyone seems to agree is a fact, is that ZPT is very slow. Many, like Enfold's Alan Runyan, also think that not much can be done about it. There are two kinds of solutions to this problem: doing page composition outside of Zope and dropping ZPT in favor of a new templating language.
Page composition could be handled somewhere else using perhaps XSL at the Apache or IIS level. It could conceivably also be handled at the client using Javascript. Enfold has dome some work on the XSL front. I wonder if Deliverance could be useful here also?
On the template language front, there is a project by Alexander Limi and Mike Solomon (from YouTube) for a new language that could be orders of magnitude faster than ZPT. Codenamed NKOTB (New Kid On The Block, I assume), this new language was tried at the sprint and yielded very good results (see the hand compiled templates link above). It's still not ready though, hence the necessity for hand optimization of the compiled template for the tests.
Replacing the templating system would be a very controversial move, so the speedup would need to be pretty convincing. Many Plone site maintainers deal mostly with ZPT, so for them it would be like relearning Plone if this changed. It would also requiere a huge overhaul of the Plone codebase.
It seems easier for the time being to just accept that ZPT is slow or try one of the outside of Zope approaches if you really need the speed. But let's keep an eye on NKOTB by all means, since another fact everyone may agree on is that any project by Alexander Limi has big potential for success.