Ma comunque dipende dall'applicativo che devi sviluppare. Il PHP ha un sacco di funzionalità, ma è sempre un linguaggio interpretato ( con i suoi limiti di prestazioni ), ed orientato al web ( manca di librerie "inutili" come, che so, opengl, che non c'entra una mazza col web (WebGL a parte, che è client-side) ).
Ora, se hai applicativi grossi, è raro comunque che li costruisci con un solo linguaggio di programmazione, ma ne usi diversi in base allo scopo specifico di ogni sua parte. Back-end in c++ ( performance ) o java/ruby/python ( semplicità e portabilità ), front-end in php/asp.net. Solitamente i progetti grossi si suddividono così, afaik.
Comunque, il più grosso limite dei linguaggi interpretati sono le performance, che per ovvie ragioni non potranno mai essere tanto veloci quanto i linguaggi compilati, ma i vantaggi sono così tanti nell'utilizzarli, che si chiude un occhio più che volentieri.
( IMHO )