PHP classificato
PHP è solo un linguaggio colla proprio come BASH o Perl. È bravo in questo, ma non bravo in nient'altro, lascia a parte qualche lavoro serio. La lingua non è progettata Si è semplicemente evoluto hackerando vari codici insieme in modo casuale (code-and-fix).
Lingue compilate
A differenza di PHP, Java è un linguaggio compilato che è stato correttamente progettato. Esistono JSR che definiscono il linguaggio, molti framework e concetti di livello enterprise come EJB, JMS, ESB, Spring, Struts, Hibernate e altri.
Software aziendale
In termini di sistemi aziendali, Java EE è una soluzione adatta allo scopo (Enterprise Edition) mentre PHP viene utilizzato in aziende che stanno cercando di ridurre i costi assumendo manodopera a basso costo con qualifiche inferiori.
C'è stato un notevole sforzo per trascinare PHP nel segmento Enterprise usando vari framework. In particolare, Zend Framework 2 . Il problema fondamentale qui non è l'orientamento agli oggetti di PHP, ma è la mancanza di progettazione, la mancanza di una digitazione forte, soluzioni non standard a problemi standard (tipo di hack per tutto) e una completa mancanza di qualsiasi architettura prescritta.
Progettazione software (architettura discussa)
Con PHP, l'onere del software di architettura è ancora completamente a carico degli sviluppatori che hanno svolto un lavoro molto scarso, cioè spesso non hanno alcuna architettura, solo codice e correzione casuali. La sicurezza e le transazioni mancano e devono essere messe da parte dagli sviluppatori. In Java, una soluzione è EJB con annotazioni. Considera anche il fatto che, in PHP, non succede nulla se ometti di rilevare eccezioni o commetti vari errori. Questo fino al runtime. Con Java, riceverai avvisi ed errori direttamente in fase di progettazione. Questo si chiama robustezza, ma con PHP puoi solo continuare a sognare.
multithreading
PHP non supporta il multithreading. Il codice è sempre un singolo thread. Ciò ostacola le sue prestazioni per problemi non banali sotto carico più pesante. Con Java EE, il multithreading è completamente supportato, ad esempio tramite l'interfaccia Runnable.
Supporto e standard
Considera anche la distribuzione, i servizi Web e altri standard. Mentre in Java ci sono grandi aziende come Oracle, IBM, RedHat, Apache e molte altre, PHP ha solo Zend.
Conclusione
Per concludere, PHP è un pessimo linguaggio orientato agli oggetti. A rigor di termini, non è nemmeno orientato agli oggetti, ma ibrido che è male dalle versioni> 5 perché OOP è confuso con la programmazione procedurale. Consiglierei PHP solo come una colla come BASH, ma per lavori seri utilizzerei Java EE.
Pensieri Correlati
L'accordo principale con l'ultimo Zend Framework 2 è che sta cercando di essere come Java EE, ma non riesce completamente a fornire almeno un set di pacchetti, funzionalità, strumenti, automazione, controllo degli errori, architettura, progettazione e qualunque cosa.
Secondo la mia esperienza, è più costoso usare PHP per progetti complessi che con Java.
Ci sono anche alcune voci come PHP sta per Pretty Horrible Programming . Posso confermare questi.