L'altro giorno, cercando della documentazione con google
sono incappato per sbaglio su un sito che ha acceso subito il mio
interesse: si tratta del sito di Phalanger, un compilatore PHP
alternativo il quale, a differenza dell'originale che produce op-code per
Zend Engine, genera del byte-code
MSIL. In questo post non intendo soffermarmi su spiegazioni
particolari di come è stato implementato il tutto poichè l'overview presente sul sito a mio
parere è semplice ma dettagliata quanto basta, vorrei
soffermarmi invece sulle impressioni che ho avuto di questo progetto
dai primi test che ho voluto subito fare con qualche script di prova
mirato e anche con qualche applicazione che ho sviluppato in ufficio e che
fa un uso intensivo ma anche un pò particolare del linguaggio stesso. Il
risultato è stato decisamente impressionante, ha funzionato tutto senza
modificare una riga di codice! Per dirla tutta in realtà una modifica è stata
necessaria, ho dovuto commentare una riga in cui
utilizzavo parse_url() (una funzione built-in di PHP)
poichè si comportava in maniera strana in fase di interpretazione dei parametri
della querystring, ma neanche a farlo apposta nella mia applicazione al tempo
avevo creato una mia funzione per ottenere lo stesso risultato... non me
ne ricordo il motivo a dire il vero, dato che alla fine non l'ho utilizzata
e non ho nemmeno scritto alcun commento a riguardo (segno del destino?
Chissà, intanto vedrò di segnalare questo problemino al team di
Phalanger). Anche due applicazioni relativamente grosse
come phpBB e PHP-Nuke girano senza
particolari problemi, come dimostrato dal sito stesso su cui sono state
allestite delle demo funzionanti. La velocità di esecuzione mi pare decisamente
buona, come per ASP.NET dopo la prima compilazione le successive chiamate
vengono soddisfatte molto rapidamente. Tuttavia ho riscontrato un degrado
nelle performance decisamente evidente in certe situazioni di cui però
non sono ancora riuscito a isolare le cause, per esempio le classi di BEncode e
BDecode che avevo scritto per PHP 5.0 risultano di gran lunga più performanti in
fase di codifica e decodifica se eseguite con PHP che con Phalanger. Comunque in
generale mi sembra un progetto piuttosto interessante sotto vari aspetti e non è
sicuramente destinato a rimanere abbandonato a se stesso visto che il team ha
già annunciato che il tutto verrà riscritto per sfruttare il nuovo CLR e alcune
parti verranno ulteriormente ottimizzate.
powered by IMHO 1.2