
PHP, mais pourquoi est-il aussi mauvais ?
Plus de 70 % des sites web sont créés avec PHP. Parmi eux, on retrouve notamment Facebook, Wikipedia, Slack ou encore Mailchimp. C’est aussi le langage sur lequel repose Wordpress, le CMS le plus connu et utilisé sur plus de 75 millions des pages présentes sur la toile. Les frameworks PHP Laravel, Symfony et CodeIgniter viennent renforcer cette popularité. PHP est une technologie libre, considérée comme facile d’accès et idéale pour apprendre à coder. Pourtant, PHP est mauvais. Ce n’est pas un avis personnel ou un titre racoleur. PHP est régulièrement dans le top 5 des langages les plus détestés par les programmeurs. Selon l’étude 2021 de Stackoverflow, il est même redouté par près de 63 % des développeurs IT. Pourquoi PHP est-il aussi mauvais ?
Un langage de programmation pas conçu pour en être un…
Des origines disparates
PHP a été créé en 1994 par Rasmus Lerdorf un programmeur qui souhaitait trouver un moyen comptabiliser le nombre des vues sur son CV en ligne. C’est d’ailleurs de là qu’il tient son acronyme. En effet, PHP signifiait à l’origine « Personal Home Page » et se résumait à une bibliothèque logicielle reposant sur le langage C. Rasmus a ensuite transformé cette bibliothèque en une implémentation capable de dialoguer avec des bases de données et permettant ainsi de construire des pages web dynamiques. En 1995, il a publié son code en open source afin que tout le monde puisse l’utiliser et y contribuer.
Sauf que son créateur lui-même a annoncé lors d’une interview qu’il n’avait jamais conçu PHP dans l’optique d’en faire un langage pour le développement. Rasmus a ainsi affirmé qu’« il n’y a jamais eu d’intention d’écrire un langage de programmation […]. Je ne sais absolument pas comment écrire un langage de programmation, j’ai juste continué à ajouter l’étape logique suivante ».
Le langage se voulait donc très simple d’apprentissage afin de pouvoir être pris en main par tous. Grosse erreur. De nombreux développeurs, mais également beaucoup de non-programmeurs ont fait évoluer la solution selon leurs besoins. Mais, si écrire des scripts compréhensibles et maintenables en PHP est facile, l’inverse est aussi complètement vrai…
Au final, le code PHP s’est retrouvé encombré de fonctionnalités en double, dépassées, sous-optimales ou ne suivant pas les bonnes pratiques. Des exemples ?
Aucun respect des conventions de nommage. Certaines fonctions utilisent l’ underscore, tandis que d' autres utilisent C-Style : strlenvs str_pad, urlencodevs utf8_encode, php_uname,etc.
Des fonctions différentes qui font … exactement la même chose : chop et rtrim, fwrite et fputs, is_integer et is_int. Le record étant (pour l’instant) détenu par le tri de tableau qui peut être fait par pas moins de treize fonctions !
Idem pour les alias différents et pourtant identiques : real, float et double ou encore int et integer...
Les inconvénients de PHP
En 2000, PHP devient « Hypertext Preprocessor ». Le cœur du langage est entièrement redéveloppé par deux étudiants Andi Gutmans et Zeev Surask. Mais, cette nouvelle version, baptisée PHP 3, fait l’objet de multiples critiques qui persistent encore aujourd’hui.
Les principaux inconvénients de PHP sont :
son typage faible qui peut être cause de nombreuses erreurs ;
ses divers frameworks qui n’offrent pas des fonctionnalités similaires ni une qualité et des performances équivalentes ;
la présence de code parasite ou legacy dans les bibliothèques ;
son absence de modularité qui le rend inadapté aux projets de grandes tailles et difficile à maintenir ;
son insuffisance en termes de sécurité : comme il est open source, des hackers peuvent chercher les failles dans le code et exploiter d’éventuelles vulnérabilités ;
le fait que ce soit un langage interprété et donc potentiellement moins performant.
ses capacités limitées en ce qui concerne la gestion des bugs. Les développeurs déplorent notamment le manque d’outils de débogage ;
Ce dernier point est probablement le plus aberrant dans le fonctionnement de PHP. La plupart des erreurs sont « gérées » en imprimant une ligne dans un journal de serveur (que personne ne lit). Les erreurs PHP internes ne peuvent pas non plus être détectées par un bloc try/ catch. De même, les exceptions ne déclenchent pas les gestionnaires d'erreurs installés par set_error_handler.
Et quand un bug est finalement remonté, son importance semble complètement « aléatoire ». Essayer d’appeler une fonction indéfinie provoque une erreur fatale, par contre si c’est une constante ou une variable qui est indéfinie ce sera une simple remarque. Mieux si vous utilisez une variable comme nom de fonction ou de classe, aucune erreur n’est indiquée.
Ces inconvénients perdurent malgré les mise à jour annuelles du langage.
PHP 7 a introduit une possibilité de typage fort ainsi que la directive « strict_types » pour assurer la compatibilité avec les anciens scripts. De son côté, PHP 8 marque l’arrivée d’un compilateur Just In Time (JIT) ou compilation à la volée qui apporte un réel gain de performance mais sans corriger les comportements aléatoires du langage. Dans certains cas vous pouvez donc créer plus efficacement … du code buggé.
PHP, le pire objectif de carrière pour les freelances IT ?
Une offre largement supérieure à la demande
PHP est souvent le premier langage appris par les développeurs. Cette simplicité est donc synonyme d’une forte concurrence sur le marché IT. Selon le cabinet de recrutement anglais « Darwin », la recherche de profils compétents en PHP montrerait une tendance à la baisse constante tandis que le nombre de candidats ne cesse lui d’augmenter.
Côté offre, les missions sont très souvent liées à WordPress avec des demandes pour la création de thèmes et de plug-ins sur-mesure. En dehors du CMS, les perspectives d’emploi en PHP se résument généralement à des actions de maintenance et d’évolution d’anciens sites et plateformes.
Ce n'est pas le langage recherché par les start-ups qui se tournent davantage vers Node.js pour le back end et React, Angular ou Vue.js pour le front-end. Pas de place non plus pour PHP dans les domaines très recherchés de l’intelligence artificielle et du machine learning où Python est le langage de référence.
Des possibilités d’évolution très limitées
Les missions en PHP sont réputées pour présenter un salaire ou un TJM inférieur à celui des autres langages de programmation. Selon Glassdoor, le revenu moyen d’un développeur PHP serait d’environ 36 000 € par an, loin derrière Java avec ses 42 000 € de rémunération annuelle. Les perspectives d’évolutions sont elles aussi limitées en raison de la demande plus faible.
Les évolutions de carrière « classiques » dans l’IT restent accessibles avec notamment des postes de :
chef de projet PHP ;
lead developer ;
directeur technique.
En revanche, les rémunérations demeurent souvent là aussi inférieures à la moyenne des autres langages de programmation.
Pour rester compétitifs, continuer à se former et à évoluer avec la technologie est indispensable. Il existe notamment une demande sur le marché IT pour des compétences dans les CMS Drupal, Magento ou encore TYPO3 ainsi que pour le framework Symfony. Les profils qui maîtrisent ces domaines sont pour l’instant en nombre insuffisant.
PHP est concurrentiel, imparfait et souvent mal considéré par les développeurs IT. Malgré tout, il demeure le langage de programmation le plus utilisé pour les sites web.
Et vous que pensez-vous de PHP ? N’hésitez pas à nous partager votre avis sur le forum.
Sources :
Enquête 2020 de StackOverflow sur les technologies les plus appréciées (et redoutées) par les développeurs : https://insights.stackoverflow.com/survey/2020#technology-most-loved-dreaded-and-wanted-other-frameworks-libraries-and-tools-dreaded3
Statistiques sur les salaires Glassdoor : https://www.glassdoor.fr/Salaires/d%C3%A9veloppeur-php-salaire-SRCH_KO0,15.htm
Commentaire
Connectez-vous ou créez votre compte pour réagir à l’article.