Qui sait, peut-être qu’un jour nous croiserons des titres d’offre d’emploi comme le titre de ce billet?

PHP souffre toujours de nombreuses critiques lorsque comparé à d’autres langages de programmation orienté web, et voit son estime rabaissée par les autres développeurs et les décideurs. Syntaxe inconsistante, approche simpliste, développement chaotique, code spaghetti (goto en PHP 5.3) … certains développeurs PHP n’osent même plus dire qu’ils font du PHP lorsqu’ils sont en face d’un développeur J2EE ou .NET!

Face aux poids lourds, il faut trouver les arguments pour la défense de PHP, car la plupart du temps ils sont du « bon » côté : Modèle objet poussé, IDE, tests, serveur d’applications … toutes les composantes de l’industrialisation sont présentes et fournies d’office (ou presque) par la technologie. Il faut avouer que tout cela, face à l’approche presque bibliothèque (ou soupe, selon le point de vue) de fonctions de PHP, le développeur PHP a de quoi se sentir un peu seul (heureusement que le modèle objet est là!).

Avant toutes choses, il faut se remettre dans le contexte et réfléchir à l’utilisation première et le pourquoi de la création de PHP par Rasmus Lerdorf: faciliter la création de sites web dynamique, en mélangeant du HTML avec des instructions de traitement (fonctions, structures, conditions) dans lesdites pages. PHP a été créé pour le web, et évolue en tentant de répondre aux problématiques que lui posent le web d’aujourd’hui : simplicité (chacun doit pouvoir s’investir dans le web sans forcément être programmeur), fonctionnel (on souhaite pouvoir en faire le maximum avec le même langage ), scalabilité/performance (HTTP stateless => scalabilité horizontale, langage interprété). Y aurait-il autant de sites web personnels, d’idées, d’échanges, de projets nouveaux sur la Toile si tout se faisait en J2EE ou en .NET ?

Dans sa noble quête de satisfaire le plus grand nombre, le groupe de développement PHP a du œuvrer en faveur des uns comme des autres. Des fonctionnalités comme les magic quotes furent crées pour épauler les débutants en leur soulageant l’aspect sécurité de leur application, et des extensions comme la SPL permirent l’essor des frameworks PHP les plus populaires (Zend, symfony), ceux-là même qui sont la vitrine du côté mature et professionnel de PHP.

Aujourd’hui, la dernière version majeure de PHP (5.3) avant PHP 6 supprime ces magic quotes et apporte les espaces de nom.

Le groupe PHP fait donc des efforts pour le développement du langage, et définir plus clairement son orientation. Mais qu’en est-il des développeurs ? Actuellement PHP est un langage très large (dans tous les sens du terme), il appartient au développeur de viser juste. Comme écrit plus haut, la distribution de PHP contient le langage PHP et rien d’autre. Pas de framework de test, pas d’IDE officiellement attribué … le tout couronné par un mélange total des genres dans le leadership donné par les grandes figures de la sphère PHP : Rasmus Lerdorf (créateur de PHP) prône MVC sans framework, tandis que Fabien Potencier (lead developer du frameworlk symfony) nous parle d’injection de dépendance. A moins de se renseigner ailleurs et d’apprendre par soi-même, le développeur PHP est tout simplement incapable d’égaler un développeur J2EE ou .NET en matière d’architecture d’application, de tests, de bonnes pratiques, de design patterns … de développement professionnel et industriel, tout simplement. Il doit donc se renseigner chez ses voisin, Java, .NET, Python, Ruby … et pourquoi pas d’autres paradigmes !

Un bon développeur est un développeur ouvert sur différentes façon de procéder et de résoudre des problématiques, curieux des autres langages de programmation et des autres paradigmes, et en veille technologique constante sur ses technologies et les nouveautés des autres.

Un bon développeur PHP est un bon développeur, la rigueur en plus. PHP ne l’offrant pas, il doit s’appliquer à être rigoureux et consistant afin de produire un code simple, efficace et maintenable.

Tout ceci est dans l’intérêt de tous,  afin de ne pas croiser ce type d’offre d’emploi plus tard.

If you enjoyed this post, make sure you subscribe to my RSS feed!