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