En juin 1995, Rasmus Lerdorf a fait une annonce sur un groupe Usenet. Vous pouvez toujours le lire.

Annonce des outils de la page d'accueil personnelle (PHP Tools) version 1.0.

Ces outils sont un ensemble de petits binaires cgi serrés écrits en C.

Aujourd'hui, vingt-cinq ans plus tard, PHP est à peu près aussi omniprésent qu'il aurait pu l'être. Je serais prêt à parier que pour la majorité des lecteurs de cet article, leurs premières incursions dans la programmation Web ont impliqué PHP.

Mais quelle que soit la richesse historique et la vaste base de données de PHP, cela ne justifie pas son utilisation dans un paysage qui évolue rapidement. Alors que PHP sera inévitablement dans les années à venir dans les applications existantes, a-t-il un avenir dans les nouveaux sites?

Avant de regarder vers l'avenir, nous devons d'abord étudier comment PHP a évolué dans le passé.

Les débuts

Rasmus Lerdorf a initialement créé PHP comme moyen de suivre les utilisateurs qui ont visité son CV en ligne. Une fois que le code source a été publié et que la base de code a été réécrite à partir de zéro un nombre considérable de fois, PHP jouissait d'une certaine popularité, apparemment installé sur 1% de tous les domaines en 1998. À ce stade, le langage ne ressemblait en rien nous savons aujourd'hui. Il a été entièrement écrit dans , avec une syntaxe sensiblement différente des versions modernes.

Entrez Zeev Suraski et Andi Gutmans, qui utilisaient PHP pour essayer de créer une entreprise mais ont trouvé qu'il manquait de fonctionnalités. En collaboration avec Rasmus, PHP a de nouveau été réécrit et publié en tant que PHP 3.0. Nous arrivons maintenant quelque part, avec PHP 3 installé sur environ 10% des domaines à l'époque. C'est également le point où la signification de PHP est passée de la page d'accueil personnelle à l'acronyme récursif préféré de tous, «PHP: Hypertext Preprocessor». Cette version et cette période sont généralement considérées comme le moment où PHP a cimenté son statut futur. Entre PHP 3 et 4, phpMyAdmin a été créé, Zeev et Andi ont mélangé leurs noms et ont fondé la société de services PHP Zend, et le vénérable logo d'éléphant est apparu.

Le reste appartient à l'histoire: peu de temps après PHP 4 est venu Drupal; en 2003, nous avons obtenu WordPress; puis en 2004 est venu un étudiant à Harvard nommé Mark.

Facebook et PHP

Facebook a commencé comme un site PHP. Mais lorsque des milliers d'utilisateurs sont devenus des millions et que des millions ont commencé à ressembler à des milliards, il y a eu des douleurs croissantes.

En particulier, PHP était (et est toujours) un langage de script. Idéal pour la productivité des développeurs, moins pour l'efficacité des ressources. Ainsi, en 2008, Facebook a commencé à travailler sur HipHop pour PHP, un transpilateur. Très simplement, il a analysé PHP, l'a transposé en C ++, puis a compilé le C ++ résultant en x64. Ce n'était pas une mince affaire étant donné que PHP est faiblement typé et dynamique. Mais les résultats parlent d'eux-mêmes: une réduction de 50% de la charge du processeur.

Je suis sûr que vous imaginez l'horreur de travailler en tant que développeur chez Facebook en utilisant ce processus. Apporter une modification au code PHP, exécuter le transpilateur, puis le compilateur, jouer du tambour, exécuter l'exécutable et trouver le problème dont vous avez besoin pour revenir en arrière et résoudre. C'est un cycle d'itération assez long, c'est pourquoi Facebook a également développé HPHPi, un interpréteur qui fait le même travail que le transpilateur / compilateur (HPHPc), mais juste pour être utilisé pour le développement. Comme vous pouvez l'imaginer, garder les deux projets synchronisés était un mal de tête tout puissant, donc en 2011, ils ont développé HHVM, la machine virtuelle HipHop.

HHVM est un runtime PHP. Il utilise la compilation JIT (juste à temps) pour fournir le meilleur des deux mondes. C'est plutôt cool, et vous pouvez en lire plus sur le blog de Facebook si vous êtes intéressé. La prochaine grande étape est venue en 2014, avec l'invention de Hack, un langage spécialement conçu pour HHVM. Il s'agit à la fois d'un surensemble et d'un sous-ensemble de PHP, ajoutant des annotations de type facultatives et des fonctionnalités supplémentaires telles que l'architecture asynchrone. Il contribue également à rendre le JIT de HHVM plus efficace en lui permettant d'optimiser en toute confiance à l'aide des indications de type spécifiées. Bientôt, un nouveau code sur Facebook a été écrit dans Hack, avec le code existant converti au fil du temps. Hack et HHVM sont tous deux open source et activement maintenus aujourd'hui.

Le fait que Facebook ait trouvé PHP sous sa forme native inutilisable à grande échelle signifie-t-il que c'est un langage mal conçu? Non je ne pense pas. Je ne pense pas que les options qui existaient à l'époque aient été créées pour l'échelle ou les spécificités requises par Facebook. Cependant, cela n'empêche pas les gens de l'utiliser contre PHP.

La haine

Au sein de la communauté plus large des logiciels, à mesure que PHP devenait plus grand, il tirait inévitablement le feu d'un groupe croissant de cyniques. Sauf que PHP, objectivement parlant, obtient plus de haine que la plupart des autres langages. Selon la récente enquête des développeurs Stack Overflow 2020, PHP est le sixième langage le plus redouté. Pourquoi?

Je ne veux pas entrer dans les détails techniques ici, mais si vous le faites, PHP: une fractale de mauvaise conception, est le billet de blog biblique pour les haineux PHP. Écrit en 2012, certains problèmes qu'il mentionne ont depuis été corrigés mais beaucoup ne l'ont pas été. (par exemple: pourquoi n'y a-t-il pas de support asynchrone natif en 2020?)

Enquête Stack Overflow 2020 sur la plupart des langues redoutées

Je pense que des problèmes plus généraux résident dans la philosophie de la langue. C'est un outil pour un domaine assez étroit, implémenté de manière complexe. Dans un monde idéal, si une application doit être complexe, la complexité doit être visible pour le développeur dans le code utilisateur, pas dans le langage lui-même. Vous n'avez pas besoin d'un outil complexe pour créer des projets complexes. Quand je dis que PHP est complexe, je ne dis pas que c'est difficile pour les débutants à utiliser (bien au contraire en fait), je dis qu'il a des conventions de nommage incohérentes et beaucoup de fonctions très spécifiques, les deux facilitent la création d'erreurs qui ne sont pas capturés avant l'exécution. Mais faut-il s’attendre à ces propriétés de l’âge de PHP? Bien que ce soit peut-être un facteur, ce n’est certainement pas la raison de la haine. Après tout, Python a été créé en 1989, six ans avant PHP, et est le troisième langage le plus apprécié dans l'enquête Stack Overflow, ainsi que l'un des langages les plus dynamiques aujourd'hui.

En matière de sécurité, il y a un débat pour savoir si le nombre supérieur à la moyenne des vulnérabilités sur les sites PHP est la faute du langage ou des développeurs du site. D'une part, un langage de codage conçu pour plaire à un large éventail de personnes, y compris des non-programmeurs, qui produisent des sites avec du code piraté ensemble à partir de didacticiels vieux de plusieurs décennies auront toujours des problèmes, quel que soit le mérite du langage lui-même. D'un autre côté, PHP a tenté de résoudre les problèmes de sécurité de base de manière discutable, par exemple en corrigeant d'abord l'injection SQL avec escape_string(), puis en corrigeant les vulnérabilités en ajoutant real_escape_string(), puis en ajoutant addslashes(), mysql_escape_string(), pg_escape_string() etc. Ajoutez cela à sa gestion labyrinthique des erreurs / exceptions (oui, les erreurs et les exceptions sont différentes), et il est facile de faire des erreurs si vous n'êtes pas bien familiarisé avec les nuances de la langue. Le nombre de sites exécutant d'anciennes versions de PHP non prises en charge après leur fin de vie continue d'être incroyablement important, de sorte que les sites PHP continueront d'être des fruits à faible coût pour les pirates pour les années à venir.

Quoi qu'il en soit, je ne suis pas convaincu que les problèmes de la langue soient aussi grands que beaucoup le feraient. Bien qu'il existe des motifs raisonnables de se plaindre de PHP, il me semble qu'une grande partie de la stigmatisation est absorbée parce qu'elle est à la mode, plutôt que motivée par des individus.

L'avenir

Cet auteur est bien conscient de l'ironie de taper les critiques de la langue dans une page avec post.php dans la barre d'adresse. Mais il ne s'agit pas de sites existants. Je ne pense pas que même les foules de fourches les plus ardentes suggèrent de réécrire tous les sites existants créés avec PHP. La question est, en juin 2020, si je veux créer un nouveau site web, PHP devrait-il être une option que je considère?

Il ne fait aucun doute que les tendances actuelles du développement Web établissent un cours pour les applications à page unique – où votre navigateur ne se recharge jamais, mais les navigations se produisent à partir de Javascript qui restitue la page en utilisant les données d'appels d'API ultra-rapides (par exemple: navigation sur GitHub ou Google Conduire). Il existe un écosystème sans cesse croissant de bibliothèques Javascript, de cadres et d'outils pour créer des applications réactives et performantes dans le navigateur – React et Vue étant les plus populaires.

En fin de compte, PHP est destiné au rendu côté serveur. C'est bien pour la plupart des sites et la meilleure option pour beaucoup. Mais si vous construisez quelque chose de nouveau en 2020, vous devez accepter que cela apporte des limites. Et bien que le rendu côté serveur de style PHP ne soit pas mort (tout le monde a oublié le référencement?), Les sites modernes sont susceptibles d'être isomorphes, c'est-à-dire capables de rendre le même Javascript sur le serveur et le client, en utilisant des cadres tels que Next. js (pour React) ou Nuxt.js (pour Vue), mettant PHP hors service sur le serveur.

Mais nous ne pouvons pas ignorer le fait que PHP évolue également. Laravel, auto-annoncé comme «le framework PHP pour les artisans du web», fournit une architecture MVC pour créer des applications PHP rapidement et en toute sécurité. Il est tenu en haute estime par la communauté et jouit d'un développement actif et rapide. De plus, PHP 8 sortira plus tard cette année, avec un tas de nouvelles fonctionnalités (dont beaucoup sembleront familières dans la section Facebook), telles qu'un JIT, des types d'Union et des erreurs améliorées.

Donc, joyeux PHP vingt-cinquième anniversaire, vous êtes sans cesse excentrique et durerez sans aucun doute encore de nombreuses années. Vous avez responsabilisé de nombreuses personnes et joué un rôle clé dans l'essor du Web. Mais ne soyez pas trop contrarié si les gens regardent ailleurs pour l'avenir, c'est 2020 après tout.

LAISSER UN COMMENTAIRE

Rédigez votre commentaire !
Entrez votre nom ici