PHP categorizado
PHP es solo un lenguaje de pegado al igual que BASH o Perl. Es bueno en eso, pero no es bueno en nada más, deja de lado algún trabajo serio. El lenguaje no está diseñado. Simplemente se desarrolla mediante la piratería de varios códigos de forma aleatoria (código y corrección).
Idiomas compilados
A diferencia de PHP, Java es un lenguaje compilado que ha sido diseñado adecuadamente. Existen JSR que definen el lenguaje, muchos marcos y conceptos de nivel empresarial como EJB, JMS, ESB, Spring, Struts, Hibernate y otros.
Software empresarial
En términos de sistemas empresariales, Java EE es una solución que se ajusta al propósito (Enterprise Edition), mientras que PHP se usa en compañías que intentan reducir los costos al contratar mano de obra barata con menos calificaciones.
Se ha realizado un esfuerzo considerable para arrastrar PHP en el segmento de la empresa utilizando varios marcos. En particular, Zend Framework 2 . El problema fundamental aquí no es la orientación a objetos de PHP, sino la falta de diseño, falta de tipificación sólida, soluciones no estándar para problemas estándar (tipo de pirateo para todo) y una falta completa de cualquier arquitectura prescrita.
Diseño de software (arquitectura discutida)
Con PHP, la carga del software de arquitectura aún depende de los desarrolladores que han estado haciendo un trabajo muy deficiente, es decir, a menudo no tienen ninguna arquitectura, solo codifican y arreglan al azar. La seguridad y las transacciones faltan y deben ser calzadas por los desarrolladores. En Java, se anota una solución EJB. También considere el hecho de que, en PHP, no ocurre nada si omite las excepciones de captura o comete varios errores. Eso es hasta el tiempo de ejecución. Con Java, recibirá advertencias y errores directamente en el momento del diseño. Eso se llama robustez, pero con PHP solo puedes seguir soñando.
Multihilo
PHP no admite subprocesos múltiples. El código es siempre un solo hilo. Esto dificulta su rendimiento para problemas no triviales bajo una carga más pesada. Con Java EE, el multihilo es totalmente compatible, por ejemplo, a través de la interfaz Runnable.
Soporte y estándares
También considere la implementación, los servicios web y otros estándares. Mientras que en Java, hay grandes empresas como Oracle, IBM, RedHat, Apache y muchas otras, PHP solo tiene Zend.
Conclusión
Para concluir, PHP es un lenguaje muy mal orientado a objetos. Estrictamente hablando, ni siquiera está orientado a objetos, sino híbrido, lo que es malo en las versiones > 5 porque la OOP se mezcla con la programación de procedimientos. Solo recomendaría PHP como pegamento como BASH, pero para trabajos serios usaría Java EE.
Pensamientos relacionados
El acuerdo principal con el último Zend Framework 2 es que está intentando ser como Java EE, pero falla completamente al entregar por lo menos un conjunto de paquetes, características, herramientas, automatización, comprobación de errores, arquitectura, remotamente comparables. Diseño, y todo.
En mi experiencia, es más caro usar PHP para proyectos complejos que con Java.
También hay algunos rumores como que PHP significa Programación Bastante Horrible . Puedo confirmar estos.