Hosting
PHP permet un hosting sur quasi tous les serveurs web (apache, nginx, etc), et la plupart des hébergeurs web proposer des hosting partagés pour PHP. Java, en revanche, requiert l’installation d’un « servlet container ». De nombreuses solutions gratuites et faciles à mettre en œuvre existent – à l’instar de Tomcat – mais demande bien souvent l’installation d’un serveur spécifique.
En conclusion : pour les projets à faible budget ou devant rester gratuit, le PHP semble plus indiqué, car le hosting est plus simple à mettre en place.
Apprentissage
PHP est un langage conçu pour internet. Ajouter un petit morceau de code PHP dans une page web pour y créer une partie dynamique se révèle très simple. C’est la raison pour les personnes démarrant de zéro ou désirant apprendre le développement commence volontiers avec PHP, les résultats étant immédiatement perceptibles. De son côté, Java demande au minimum une bonne compréhension de la programmation orientée objet, chose ardue pour un néophyte.
Communauté / Ressources / Interopérabilité
PHP et JAVA sont des langages extrêmement populaires, disposant de nombreuses ressources et s’appuyant sur une très large communauté. Mais s’il fait jeu égal avec JAVA au rayon « sites web », PHP n’est présent que dans cette branche. JAVA est quant à lui utilisé dans quasiment tous les domaines de l’informatique, ce qui permet une grande interopérabilité. C’est par exemple le socle de base du système Android, présent sur la plupart des smartphones dans le monde. Cela a pour conséquence qu’il est plus facile de trouver un développeur Java que PHP.
L’IEEE est un organisme qui comptabilise le nombre de recherches effectuées sur l’un ou l’autre langage, le partage d'information/de ressources en ligne, et l'activité sociale autour des différents langages de programmation.
Sécurité
JAVA valide les données à chaque étape du processus, ce qui rend presque impossible toute velléité d’attaques de type « injection », et se révèle donc un atout important en matière de sécurité. Côté PHP, le contrôle et la validation des données sont l’apanage du développeur, là où JAVA les inclut directement au cœur du langage.
Performances
Avant d’être exécuté, le code JAVA est « compilé », c’est-à-dire écrit et transformé par le développeur pour faciliter sa lecture par une machine. Un aspect qui rend les applications JAVA plus performantes que leurs homologues PHP. Pour vérifier ce constat, nous avons mené une expérience simple, en installant sur une même machine plusieurs CMS basées sur différents langages et en envoyant des milliers de requêtes sur ledit site sans autre configuration. Voici le résultat de ce test :
Maintenance
Java garantit une comptabilité ascendante du langage. En pratique, quel que soit le projet, il sera possible d’effectuer une mise à jour sans problème et aucun un souci n’en résultera. En PHP par contre, les mises à jour de version majeures peuvent engendrer des problèmes dans l’applicatif. De plus, en raison du profil « compilé » du langage PHP, il faut, pour qu’un problème se pose, une exécution dudit code par le visiteur du site. De nombreux tests utilisateurs seront donc nécessaires à chaque mise à jour de version.
Java utilise un mécanisme de « packaging ». L’application web est « empaquetée » dans un fichier ZIP (avec l’extension .war), quand PHP déploie simplement les fichiers sur le serveur. L’approche de JAVA est meilleure pour les mises à jour importante en milieu professionnel, car elle garantit que tous les fichiers proviennent bien de la même version et seront compatible entre eux. A contrario, PHP complique davantage les mises à jour globales que les mises à jour simples ou corrections mineurs, qui ici peuvent se faire directement sur le fichier dans l’application.