Nei commenti al post di due giorni fa a proposito linguaggi da imparare per sviluppare, ho notato che per l'ennesima volta si è finiti a discutere di PHP; vorrei dare anche la mia opinione in proposito, sperando di riuscire a chiarire anche a me stesso il perché di alcune scelte effettuate in questo ultimo anno.
Come ormai molti avranno capito (e come sottolineato da And3a) PHP non rientra più tra i linguaggi con cui sviluppo (a parte alcune situazioni in cui non ci sono alternative al suo utilizzo). Le motivazioni sono veramente tante (e spesso soggettive), ma una su tutte secondo me merita attenzione: PHP è sempre un passo indietro rispetto alla concorrenza. PHP è nato inizialmente come un progetto di un giovane sviluppatore che aveva come unico obiettivo quello di facilitarsi il lavoro nello sviluppare gli script Perl con cui creare semplici siti web. Con il tempo si è evoluto, ma la mancanza di design iniziale ha finito per influire parecchio sul processo evolutivo del linguaggio. PHP è sintatticamente povero, poco duttile e veramente mal organizzato dal punto di vista delle funzionalità fornite nella libreria standard: non è possibile che ogni libreria standard segua le proprie regole per la definizione delle funzionalità esposte, come non è possibile che nella libreria standard manchino funzionalità ormai essenziali quali il supporto Unicode.
Cerco di non divagare e torno un attimo al punto iniziale: PHP è sempre rimasto indietro rispetto alla concorrenza. Le prove sono lampanti: un supporto accettabile alla Reflection ed alla programmazione ad oggetti sono stati aggiunti quando già da anni gli altri contendenti parlavano di Metaclassi, programmazione ad Aspetti e programmazione basata sugli attributi; il supporto a Unicode verrà addirittura introdotto nella versione 6 (che spero venga rilasciata al più presto e dia una ventata di aria pulita al fumo che attualmente inquina, a mio parere, il nome di PHP) quando in realtà è un'esigenza da svariato tempo; per non parlare delle performance, alle quali si darà (forse) una strigliata in PHP 6 con l'aggiunta alla libreria standard del package APC.
Ovviamente sono miei pensieri, condivisibili o meno, ma questo è uno dei motivi per cui non ritengo PHP un'ottima scelta per chi vuole scegliere un linguaggio padre per sviluppare sul web.
Prima di chiudere vorrei precisare un altro punto: secondo me ha poco senso sminuire o elevare PHP in risposta a discorsi fatti a proposito del supporto da parte degli hosters. Al giorno d'oggi le versioni di PHP supportate sono obsolete, e quindi ci si trova nella stessa situazione se si decide di utilizzare PHP 5.2 o Haxe; però è anche vero che oggi molto più di ieri si può accedere con costi contenuti a server virtuali o spazi hosting eccellenti che offrono il supporto per un gran numero di soluzioni o la libertà di configurarsi a piacimento il proprio sistema. Sono pochi i clienti che hanno la necessità di spendere pochissimo per il proprio server (e con la parola pochissimo mi riferisco a pochi euro all'anno), ed in questi casi non richiedono mai l'appoggio a soluzioni specifiche, quindi non vi sono problemi nell'adottare soluzioni alternative (magari estere) che rispondano alle nostre esigenze.