ZPT Amarcord
nel 2003, al webbit di Padova, ZPT era già in auge, e Zope Italia ne presentava i vantaggi e le peculiarità.
Da tempo si sta cercando di superare la tecnologia ZPT, usata da Plone per la costruzione delle sue interfacce.
In particolare si punta il dito sulla particolare lentezza di ZPT: ancora oggi, dove si richiede a Zope di costruire pezzi di interfaccia con massima rapidità, si fa uso dell'obsoleto DTML (vedi il caso dei fogli di stile di Plone).
Un compromesso interessante tra il buttare a mare ZPT e il tenersi il loro problema prestazionale ce lo offre Malthe Borch, con Chameleon: http://chameleon.repoze.org, http://pypi.python.org/pypi/chameleon.core.
Chameleon è un compilatore generico per linguaggi di templating basati su attributi: di mestiere mastica template (come quelli di ZPT) e li trasforma in byte-code Python, rendendoli molto più 'veloci' nella loro fase di rendering.
Essendo un compilatore generico, il pacchetto chameleon.zpt ci fornisce l'estensione per poter lavorare con ZPT: http://pypi.python.org/pypi/chameleon.zpt.
Hanno Schlichting ha fatto dei test molto promettenti, e ce li presenta in un suo post: http://blog.hannosch.eu/2009/03/can-i-make-my-plone-3x-faster.html
Molto presto avremo la possibilità di attivare Chameleon sulle prossime versioni di Plone, dando un'ulteriore spinta al miglioramento delle sue performance, ottenuto lavorando anche su altri fronti.
Per i più curiosi, un possibile futuro prossimo lo potete intuire da qui: http://pypi.python.org/pypi/chameleon.html.
Invece, per restare in tema di "ZPT alla riscossa", mi è venuta una certa nostalgia ricordando i bei tempi del Webbit 2003 a Padova. In tale occasione i "fedeli" zopisti italiani si riunivano fisicamente per la prima volta, e tutti insieme presentavamo Zope alla vastissima platea dell'Arena del Webbit, che ospitava anche uno dei primi sprint Plone.
Tra le varie presentazioni c'era quella su ZPT, a cui avevo lavorato insieme a Paolo Dina (che fine hai fatto Paolo?!), e che vi ripropongo in allegato, oltre ad averla trascritta nella sezione documentazione di Labs...
