PHP categorizado
PHP es solo un lenguaje de pegamento como BASH o Perl. Es bueno para eso, pero no es bueno para nada más, deje de lado un trabajo serio. El lenguaje no está diseñado. Simplemente evoluciona hackeando varios códigos juntos de una manera casual (código y arreglo).
Idiomas compilados
A diferencia de PHP, Java es un lenguaje compilado que ha sido diseñado adecuadamente. Hay JSR que definen el lenguaje, muchos marcos y conceptos de grado 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 empresas que intentan reducir costos mediante la contratación de una mano de obra barata con menos calificaciones.
Ha habido un esfuerzo considerable para arrastrar PHP al segmento Enterprise 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 tipeo fuerte, soluciones no estándar a 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 completamente de los desarrolladores que han estado haciendo un trabajo muy pobre, es decir, a menudo no tienen ninguna arquitectura, solo codifican y arreglan al azar. Faltan la seguridad y las transacciones y los desarrolladores deben contar con calzado. En Java, una solución es EJB anotado. También considere el hecho de que, en PHP, no sucede 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 tiempo de diseño. Eso se llama robustez, pero con PHP solo puedes seguir soñando.
Multithreading
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 subprocesamiento múltiple es totalmente compatible, por ejemplo, a través de la interfaz Runnable.
Soporte y estándares
Considere también 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 orientado a objetos muy malo. Estrictamente hablando, ni siquiera está orientado a objetos, sino que es híbrido, lo que es malo para las versiones> 5 porque OOP está mezclado con la programación de procedimientos. Solo recomendaría PHP como pegamento como BASH, pero para un trabajo serio usaría Java EE.
Pensamientos relacionados
El acuerdo principal con el último Zend Framework 2 es que está tratando de ser como Java EE, pero no puede entregar al menos un conjunto remotamente comparable de paquetes disponibles, características, herramientas, automatización, verificación de errores, arquitectura, diseño y todo.
En mi experiencia, es más costoso usar PHP para proyectos complejos que con Java.
También hay algunos rumores como que PHP significa Programación bastante horrible . Puedo confirmar esto.