Negli ultimi mesi ho indagato su quali strumenti siano disponibili per semplificare lo sviluppo e la manutenzione del codice PHP.

Mentre C# / ASP.NET supporta ormai da diversi anni Refactoring e classi e funzioni a livelli avanzatissimi, scopro che nè Zend, nè Phalanger, nè VS.PHP, e nemmeno Eclipse supportano alcuna funzionalità di refactoring.

Molti programmatori obietteranno che sono cose inutili, ma non è così. Mantenere il codice, documentarlo, produrre cordice di qualità con PHP richiede uno sforzo decisamente maggiore rispetto a linguaggi più potenti.

Senza contare poi che la mancanza di compilazione significa in realtà mancanza di controllo. Modifichi il codice e non hai nessuna garanzia che funzioni fin quando non ci vai a runtime,

Ma la cosa più stupefacente è vedere come ASP.NET sia riuscito a introdurre un protocollo stateful sull'http che è notoriamente stateless. Infine la facilità con cui è possibile creare componenti aggiuntivi. Immaginate una textbox html. In Asp.net è possibile creare e condividere con altri programmatori textbox ajaxified. Quando le trascini visivamente su una pagina queste generano il javascript e il codice necessario per soddisfare le richieste ajax.

Stupefacente, quando l'ho visto non ci credevo quasi...

Ma allora mi chiedo: PHP è davvero competitivo?