PHP catégorisé
PHP n'est qu'un langage glue comme BASH ou Perl. C'est bon à cela, mais pas bon à autre chose, à part un travail sérieux. La langue n'est pas conçue. Il est simplement évolué en piratant divers codes ensemble de manière aléatoire (code-and-fix).
Langues compilées
Contrairement à PHP, Java est un langage compilé qui a été correctement conçu. Il existe des JSR définissant le langage, de nombreux cadres et concepts de niveau entreprise tels que EJB, JMS, ESB, Spring, Struts, Hibernate et autres.
Logiciels d'entreprise
En termes de systèmes d'entreprise, Java EE est une solution qui correspond à l'objectif (Enterprise Edition) tandis que PHP est utilisé dans les entreprises qui essaient de réduire les coûts en embauchant une main-d'œuvre bon marché avec des qualifications moindres.
Il y a eu un effort considérable pour faire glisser PHP dans le segment Entreprise à l'aide de divers cadres. Plus particulièrement, Zend Framework 2 . Le problème fondamental ici n'est pas l'orientation objet de PHP, mais c'est le manque de conception, le manque de typage fort, les solutions non standard aux problèmes standard (sorte de hacks pour tout) et l'absence totale d'architecture prescrite.
Conception de logiciels (architecture discutée)
Avec PHP, le fardeau de l'architecture du logiciel est toujours entièrement à la charge des développeurs qui ont fait un très mauvais travail, c'est-à-dire qui n'ont souvent aucune architecture du tout, juste coder et corriger de manière aléatoire. La sécurité et les transactions manquent et doivent être corrigées par les développeurs. En Java, une solution est EJB annotée. Tenez également compte du fait qu'en PHP, rien ne se produit si vous omettez de détecter des exceptions ou de faire diverses erreurs. C'est jusqu'à l'exécution. Avec Java, vous obtiendrez des avertissements et des erreurs directement au moment de la conception. C'est ce qu'on appelle la robustesse, mais avec PHP, vous ne pouvez que rêver.
Multithreading
PHP ne prend pas en charge le multithreading. Le code est toujours un seul thread. Cela entrave ses performances pour les problèmes non triviaux sous une charge plus lourde. Avec Java EE, le multithreading est entièrement pris en charge, par exemple via l'interface Runnable.
Support et normes
Tenez également compte du déploiement, des services Web et d'autres normes. Alors qu'à Java, il existe de grandes entreprises comme Oracle, IBM, RedHat, Apache et bien d'autres, PHP n'a que Zend.
Conclusion
Pour conclure, PHP est un très mauvais langage orienté objet. À strictement parler, il n'est même pas orienté objet, mais hybride, ce qui est mauvais à partir des versions> 5 car la POO est mélangée à la programmation procédurale. Je ne recommanderais que PHP comme colle comme BASH, mais pour un travail sérieux, j'utiliserais Java EE.
Réflexions connexes
Le principal problème avec le dernier Zend Framework 2 est qu'il essaie de ressembler à Java EE, mais ne parvient pas à fournir au moins un ensemble comparable à distance de packages, fonctionnalités, outils, automatisation, vérification des erreurs, architecture, conception et tout.
D'après mon expérience, il est plus coûteux d'utiliser PHP pour des projets complexes qu'avec Java.
Il y a aussi des rumeurs telles que PHP signifie Pretty Horrible Programming . Je peux les confirmer.