Pourquoi les développeurs détestent PHP
Le PHP est le langage le plus utilisé au monde. C’est aussi le plus détesté. Et c’est de la haine pure. Mais pourquoi autant de développeur(euse)s le détestent autant ? Aujourd’hui on va aller jusqu’à l’origine de la haine et on va voir si elle est vraiment fondée.
Touche pas à mon PHP
Si j’ai l’aplomb de t’affirmer que PHP est détesté par le monde entier c’est pas un avis personnel. Je te sors pas ça pour troller. Je sais que c’est mon genre mais là c’est pas le cas. Dans la dernière enquête de stack overflow les développeur(euse)s du monde entier ont mis PHP dans le top 5 des langages les plus craints. La dernière enquête de chez Hired le met carrément en première place des plus détestés. Y’en a plein d’autres c’est accablant et je te parle même pas de ce qui se passe sur Reddit. Si t’es un(e) développeur(euse) PHP depuis 20 ans venu(e) ici en croisade pour me crucifier sur l’autel de Symfony détends toi deux minutes s’il te plait. On est là pour discuter, pose cette arme. Bon maintenant au contraire si tu hais PHP avec passion : prends des pop-corns et assieds toi confort’ t’es au bon endroit.
Bon t’es au bon endroit c’est pas sûr en fait. Il y a quelques années je faisais moi-même du Symfony2. Et j’ai fait ça pendant des années. Et j’aimais bien cette affaire de Symfony franchement c’est pas mal. Y’a très peu de temps j’ai raconté ça à un développeur que j’ai rencontré à un meetup devops. Il était choqué, à deux doigt de vomir, il me regardait comme si j’avais assassiné un nouveau-né. À partir de maintenant je vais l’appeler Jean-Jean pour que ça soit plus simple. Du coup j’ai tout de suite posé une question à Jean-Jean : pourquoi tant de haine ?
Le passé de PHP
Pour comprendre ce qui va suivre il te faut du contexte. Pour ce faire petit retour en arrière. Nous somme en 1994 et Rasmus Lerdorf code rapidement une suite d’outils en C. Cette suite d’outils lui sert à gérer son site web perso. Rasmus il fait ça juste pour sa gueule à ce moment là. Il ne veut pas en faire un langage de programmation. Rien n’est désigné dans cette suite d’outils pour le devenir. Un an plus tard Rasmus publie en open source cette suite d’outils appelée alors : PHP/FI. Et ça ressemblait à ça.
<!--include /text/header.html--> <!--getenv HTTP_USER_AGENT--> <!--ifsubstr $exec_result Mozilla--> Hey, you are using Netscape!<p> <!--endif--> <!--sql database select * from table where user='$username'--> <!--ifless $numentries 1--> Sorry, that record does not exist<p> <!--endif exit--> Welcome <!--$user-->!<p> You have <!--$index:0--> credits left in your account.<p> <!--include /text/footer.html-->
On est loin de ce que tu utilises aujourd’hui dans ton énorme framework PHP7 pas vrai ? Pourtant tout vient de là. Pour la suite de l’histoire le code est repris par une équipe de dev et PHP/FI2 sort en 1997. En 1998 une partie est réécrite et PHP3 fait son apparition. En 1999 le cœur de PHP est totalement réécrit pour produire Zend. PHP4 suit l’année d’après et PHP5 sort en 2004 avec Zend2. PHP6 est carrément annulé tellement son développement s’est transformé en enfer sur terre. Enfin via une énième réécriture majeur du langage : PHP7 sort en 2015. Je me rappelle qu’a l’époque j’étais tout excité. Mais à la base Rasmus il codait juste son truc dans son coin. En 2003 il fait une interview et raconte des choses incroyables.
« Je n’aime vraiment pas la programmation. J’ai construit cet outil pour programmer moins afin de pouvoir simplement réutiliser du code[…]. Je ne sais pas comment l’arrêter, 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. »
Inconsistance et mauvais design
Retour en 2019 avec notre ami Jean-Jean du meetup qui vomit PHP comme pas possible. Il a tout de suite commencé à me parler de la syntaxe « dégueulasse » de PHP. Du fait que le langage soit non typé. Du fait que cette « horreur de langage » soit la plupart du temps imprévisible. Que ça soit du côté des retours de fonction ou bien de l’utilisation des opérateurs. Il y a également les inconsistances incroyables du nommage des fonctions. Bref je t’épargne la liste des problèmes techniques car sinon cet article va te prendre la journée à lire.
Si vraiment tu veux tout savoir je t’ai trouvé la personne la plus énervée du monde contre PHP qui déverse sa haine sans retenue. Non, en fait je crois que celui qui déteste le plus PHP c’est lui en fait. Des articles comme ça y’en a 1 milliards sur les internets. Et ils valident tous pas mal ce que me disait Jean-Jean. Les développeur(euse)s détestent PHP car c’est un langage techniquement inconsistant avec un mauvais design. Quand on le compare à d’autres langages le contraste est flagrant. Si après la lecture de ces deux articles tu ne peux pas avouer que PHP a des problèmes alors c’est que c’est devenu ta religion. Et j’ai arrêté d’essayer de convaincre des fanatiques.
En PHP c’est très facile de coder quelque chose avec son cul. D’autres languages ont beaucoup plus de restrictions et empêchent les libertés et les facilités. Le meilleur exemple ici est le fort typage présent dans beaucoup de langage. On voit aussi beaucoup de problèmes de sécurité avec PHP. Et le problème est le même : c’est très facile de faire du code non sécurisé avec PHP. Mais PHP n’est pas un trou de sécurité si on fait les choses proprement. Les développeur(euse)s détestent PHP car tu es plus susceptible d’avoir des erreurs avec un langage qui laisse autant de liberté. Et les bugs dans du spaghetti code PHP c’est pas la joie. Surtout quand grand nombre de ces utilisateurs sont des débutants du fait de la facilité d’accès de PHP.
Victime de son succès
Il y a un autre facteur important dans cette haine ambiante. Les développeur(euse)s détestent PHP car il est utilisé partout. Ce blog tourne sur du PHP7. Comme la majeure partie du web j’ai juste besoin d’hoster une page dynamique qui est ensuite cachée en HTML statique. Mon blog c’est pas Amazon. Et du coup PHP ça fait la job comme on dit au Québec. Oui le langage en lui même n’est pas le meilleur. Oui il y a plus joli. Mais on s’en fout en fait. Ca répond à mon besoin de façon rapide et accessible. Et c’est également pour cette raison que 80% du web tourne en PHP.
Quand j’ai expliqué la même chose à Jean-Jean il a commencé à bouillonner. Comme toi et moi Jean-Jean a des amis et de la famille. Ces gens lui demandent fréquemment de l’aide pour leur site pro et perso. Devine quelle langage revient toujours sur les sites de ces connaissances ? Du coup Jean-Jean il se retrouve de temps à autre à devoir changer des choses en PHP. Et ça, ça lui file un mal de tête incroyable.
Avec l’avènement de WordPress qui domine littéralement les Internets Jean-Jean a pas fini de rager. En passant je te parle comme si ce langage savait que chier un blog comme le mien, mais pas du tout ! Facebook, Wikipedia, Yahoo, Flickr, Tumblr tous ces sites tournent en PHP et accueillent des millions d’utilisateurs tous les mois et des milliers de façons concurrentes sans broncher. PHP fait ça très bien et il le fait depuis longtemps.
Vieux de la veille
Ca fait 10 ans que t’entends que PHP va mourir. Pourtant il est toujours là. Malgré le temps et les dernières technologies hypes il ne bouge pas. Les développeur(euse)s détestent PHP car c’est le contraire du hype driven development. Dans un métier ou tout le monde investit rapidement sur les dernières nouveautés, PHP est un vieux monsieur qui ne veut pas vendre son terrain. Un vieux monsieur qui continue à danser de façon insolente avec ces 80% d’occupation du web.
Bref en tout cas ma discussion avec Jean-Jean continue normalement et tout d’un coup il me dit quelque chose de complètement choquant tellement c’est faux. « En plus de ça PHP est de très loin le langage le plus lent de tout ce que tu trouve pour faire du web ». Quand il a dit ça j’ai compris que Jean-Jean avait pas fait sa veille depuis longtemps.
PHP évolue, pas sa réputation
Dans la tête de beaucoup de développeur(euse)s, PHP est resté en version 4. À l’époque ou le langage était instable, où la performance était désastreuse et où la POO était inexistante. Les développeur(euse)s détestent PHP car ils sont persuadés que le langage stagne depuis 20 ans. Quand tu connais PHP aujourd’hui et tous les frameworks qu’ils l’entourent force est de constater qu’on est loin de PHP4.
PHP7 est plus rapide que Python et Ruby. Le langage peut être fortement typé si tu le souhaites. Le tooling évolue aussi avec des analyseurs statiques qui sont apparus ces dernières années. Les frameworks comme Symfony ou Zend forcent les bonnes pratiques. Une nouvelle version est release tous les ans avec un agenda bien précis. D’ailleurs PHP7.4 arrive bientôt et promet encore plus de performance. Encore une fois je vais pas te faire la liste de tout ce qui se passe dans le PHP moderne par soucis de longueur. Si tu veux tout savoir je t’invite à consulter cet article qui va t’ouvrir les yeux sur PHP en 2019. Il est temps de nuancer ton regard haineux qui date de 2003 sur un langage qui n’a plus rien à voir avec ce qu’il était.
Si je fais cet article c’est aussi pour ouvrir les yeux aux gens qui n’ont pas touché à PHP depuis longtemps et qui ont une haine aveugle envers le langage. Les développeur(euse)s détestent PHP car c’est cool de détester PHP. Ce langage continue à se trainer cette réputation de language monstre alors qu’il s’agit d’un langage comme les autres. Avec certes un fort legacy et pas mal de problème mais avec autant de forces.
Épilogue
La plupart des développeur(euse)s qui détestent PHP le détestent par élitisme ou par ignorance. Dans les deux cas c’est débile. Il faut choisir une technologie par rapport à son besoin. PHP est fortement utile et performant dans de nombreux scénarios. Et le sortir de l’équation seulement à cause de sa réputation est aussi con que désespérant. Et y’a plein de gens désespérants.
« Si je fait cet article[…] »
fais
😉
Corrigé. Merci pour la coquille !
« sans retenuE »
Bonne réaction.😌
J’ai eu à faire un peu de maintenance sur un site WordPress. Je pense que le fait que ce CMS n’utilise pas de framework laisse une porte ouverte à un million de façons d’implémenter du code, ce qui ne facilite pas la lecture pour identifier l’origine d’un bug ou même retracer le workflow d’une feature. Au final, on est frustré et on accuse tonton PHP 😂
super article ! surtout que les gens n’ont pas encore utilisé le JITS qui arrive prochainement et ils ne connaissent pas l’extension Phalcon + Zephir … les performances sont monstrueuse. :P… avec toutes les avancé de PHP et optimisation et trésor … bientôt les mec vont nous sortir une fonction Code_C{ … écrire en code C histoire de descendre en bas level … } XD … y a rien d’impossible en php remarque ils ont prouvez que tout est possible.
« La plupart des développeur(euse)s qui détestent PHP le détestent par élitisme ou par ignorance »
Faux, on le déteste car on sait qu’on à 9 chances sur 10 de tomber sur un projet codé avec les pieds en PHP 😀
Oui. Mais on a aussi 9 chances sur 10 de tomber sur un projet codé avec les pieds tout court 😉
Les appli qui ont le plus de besoin de maintenance sont les applis les plus mal codés. Comme il faut 10 fois plus de temps pour réaliser une évolution sur une appli codée avec les pieds par rapport à une appli bien codée, on a 9 chances sur 10 de tomber sur des applis mal codés. cqfd 😉
+1000
Reviens à la raison mon chère, il faut s’en prendre à l’équipe à l’origine de ces projets foireux et non au langage !
Donc c’est toi qui as faux !
C’est pas la faute de php, juste des développeurs qui n’essayent pas de coder proprement car ça demande de la réflexion et un peu d’effort
De la même manière que pour Javascript, Python, etc. J’ai vu des horreurs en C++ et des super trucs en VB6. C’est pas le langage qui est en cause, c’est la personne derrière le clavier.
Exactement, ca me rassure de voir qu’il a tout de même des gens qui voient clair. Évidemment que c’est la faute des gens. Oui c’est un langage permissif, mais si on respect les bonnes pratiques (cf PHP7, typage, PSR, …) on aura rien à envier à d’autres langages. C’est fatiguant ce discours de cours de récrée. Si un dev ne veut pas faire de php, qu’il n’en fasse pas, mais avant de critiquer, il faut se renseigner sur son vrai potentiel, ou juste faire un peu de veille pour se rendre compte qu’il a clairement changer ces 10 dernières années. Merci pour ton article, qui je l’espère aura ouvert quelques esprits étroits.
Et encore
t’es gentil
Super article.
PHP souffre aussi de 2 petits problèmes :
– Il reste cantonné à du Web
– Si on programme comme une m***e, c’est facile de dire que c’est la faute de l’outil.
Pas vraiment, je code maintenant des routines en ligne de commande pour traiter des fichiers bruts. Ça vaut les autres langages, et quand PHP est déjà présent dans ta machine, ça fonctionne très bien.
– « Il reste cantonné à du Web » : Non. Tu peux très bien exécuter des scripts PHP côté serveur sans que cela ait à voir avec le Web 😉
– « Si on programme comme une m***e, c’est facile de dire que c’est la faute de l’outil » : Oui. 😛
Vrai et faux.
PHP fonctionne très bien en ligne de commande.
J’ai même déjà écrit une appli PHP qui fonctionnent en tache de fond et envoie des SMS (via une librairie externe) en fonction des besoins.
Ce qui manque à PHP, c’est une interface graphique en natif ou via un « processeur virtuel »… Il est possible de tricher un peu avec, par exemple, pour les appli mobiles, Coedova, mais ce n’est plus du tout du PHP (HTML/JavaScript/CSS « transformé » en langage impératif natif)
Fote de frape : lire « Cordova » e pas « Coedva 😀
super article ! merci
Moi qui n’est que novice en la matière ,ton article m’a donné envie d’être curieux de me faire mon propre avis sur PHP !
Sans doute que dans quelque années ( je vise loin oui ) , je détesterai – ou pas – PHP mais au moins pour mes raisons et pas pour faire comme « tout l’monde »
p.s: merci pour ces mêmes, gifs et blagues de Qualitées ! 👏
« développeur(euse)s »
Non.
je code comme une merde en php, js, c#, java et delphi, mais plus vite en php !
Pareille. Php ça va vite et bien. On code comme des porcs mais ça marche. Le web coûte de l’argent. Le temps de dev aussi. Coder vite une bouse qui marche et vendre de la maintenance. Voilà le monde du dev.
Ce qui est valable pour php edt valable pour tout les languages qui fonctionnent et qui durent. C++, Perl,…
Perso, ça m’a donné envie d’essayer juste pour me faire mon propre avis. Merci pour l’article.
On pourrait presque reprendre le même avec C++ (la plupart des critiques du langage n’en connaissent généralement que sa version C++98).
Merci pour l’article! Après des années, je vais justement devoir me remettre à PHP/Symphony et je découvre avec soulagement qu’il y a encore de la lumière au bout du tunnel. Après, je suis d’accord avec Jos : dans langage ouvert aux quatre vents, l’enfer c’est souvent le code des autres…
« Le PHP est le langage le plus utilisé au monde. » Heu non, plus depuis assez longtemps maintenant.
https://spectrum.ieee.org/computing/software/the-top-programming-languages-2019
Ceci dit, php est encore très très utilisé.
Le lien en référence parle de popularité de language non pas d’usage.
Trouvé des liens pour exprimer la tendance que l’on souhaite est facile, la preuve en voici un:
https://w3techs.com/technologies/overview/programming_language/all
Ce genre de résultats est à prendre avec des pincettes, car pas simple à vérifier.
Bon article. J’ai jamais été un PHP hater et je bosse essentiellement sur cette techno. Et globalement bah t’as tout résumé : C’est un merdier qui a du évoluer pour devenir efficace. Y’a encore beaucoup de chemin à parcourir (notamment foutre un gros coup de balai et rendre cohérent les fonctions de base du langage), mais on y arrive tranquillement.
Et surtout, on y arrive sans surensemble. Le coeur de PHP évolue, c’est pas juste Zend et Symfony qui rajoute les features, laissant un PHP simple sans rien, c’est pas un pseudo langage qu’on compile en PHP… (Yep, c’est gratuit dans la gueule de Javascript ça)
C’est surtout le développement web qui est fondamentalement chiant 😛
J’utilise depuis PHP depuis 5 ans, et je me sens tellement bien. Comme présenté dans l’article, PHP est en évolution. La version 7 est un grand pas qui va redonner de la visibilité à ce langage. Je peux rajouter, que mes développeurs détestent PHP, parce qu’ils suivent la tendance tout simplement. Rare, les personnes qui vont se faire un avis sur le langage par le biais de l’expérience.
« le sortir de l’équation seulement à cause de sa réputation et aussi con que désespérant. Et y’a plein de gens désespérants. »
Merci Mehdi!
Alors qu’en tu es dev PHP et spécialisé dans WordPress… je te fais pas de dessin…
Sorry je suis orthographe nazi, j’ai pas réussi couper mon cerveau avant quelques lignes, donc il doit rester quelques coquilles :
« Y’en a plein d’autres c’est accablant et je te parle même pas de ce qui se passe sur [Reddit] »
« On est là pour [discuter], pose cette arme. Bon maintenant au contraire si tu [hais] PHP avec passion : prends des pop-corns et [assied] toi [confortablement] t’es au bon endroit. »
C’est corrigé. Merci beaucoup Aurélien !
Je suis DEV, j’aime le Php et je le revendique. Bon d’accord…je suis fullstack et je fais presque tout from Scratch c’est sûrement pour ça que je m’éclate autant. La classe de bosser chez Ubi Soft au passage. Petit Veinard 😁
Heu, le langage le plus détesté n’est pas le JavaScript ?
Par moi oui, c’est JS le plus détesté 😜
Essentiellement développeur JS et venant du monde du .Net, du Scala et du Java je n’avais effectivement pas fait de PHP depuis sa version 4 jusqu’à cette année. Et pourtant j’ai toujours autant de mal à l’apprécier..
J’ai toujours l’impression le monde du PHP (langage + frameworks/outils) est en retard sur celui des autres langage. Peut-être que je n’utilise pas les bons outils ou peut-être est-ce juste une peur du PHP restée enfouie.
Mais de l’utilisation que j’en ai et surtout de ce que j’en vois quotidiennement en code review, Symfony & co n’apportent pas toute la puissance d’un projet java avec une stack spring (Boot / Cloud / WS) par exemple. Cependant c’est certain pour un petit projet c’est largement suffisant, pas besoin de déployer une usine à gaz.
Et puis concernant langage lui même, même si j’ai eu l’agréable surprise de voir que les arrow functions arrivent *enfin*, le language me paraît toujours un peu trop verbeux et peu agréable à lire et à utiliser.
Et ce, en partant de petits détails comme l’utilisation de `$` devant les variables, les `::` et `->` là où on utilise très bien le `.` dans d’autres langages, le `array_map` (quelle horreur d’avoir à écrire ça, là où le `.map` des autres langages ensoleille ma journée, même si oui, il y une lib pour pourvoir faire la même chose en PHP), l’utilisation du `fn` pour déclarer une arrow function…
Des détails certes, venant de son historique et de sa conception, mais qui le rendent selon moi moins « developer friendly »
Bref, voilà pourquoi je « déteste PHP »
Amusant 😉
Je ne pense pas que les dev detestent PHP (ou pas plus que le javascript), c’est l’évolution rapide des technologies (donc des langages) qui fait doucement glisser le php vers la sortie, je m’explique: depuis le web 2.0 avec XMLHttpRequest, l’ES6 (2015), le moteur V8 de Google pour nodeJS, le TypeScript de Microsoft adopté par Angular (framework Google – Single Page Application), le framwork React de Facebook …
Tout est fait (en tout cas chez Microsoft et Google) pour transformer les sites web en WebApps et maintenant en PWA (mobile oblige). Mon avis: l’association des deux géants du web se concentre avant tout sur l’affaiblissement du Java (et donc d’Oracle). Le backend tel qu’on le pratiquait (il y a quelques années) glisse vers le frontend ((JS) parce que seul maitre dans un navigateur), le backend évolue vers un monde d’API nécessitant des langages plus rapides et facilitant le multi-theading (comme le GO ou le RUST). Des API ne répondant que pour du transfert de data (JSON) à des requetes GET, POST, DELETE …
Bref, le web se transforme et de nombreux langages vont en faire les frais selon moi (Java, PHP, Ruby). Python tire son épingle du jeux car c’est le langage de scripts de référence des distributions Linux, utilisé également pour l’IA ou le Big Data. Une PWA peut être empaquetée (Electron, Cordova …) et fonctionner su n’importe quel OS (ex VSCODE de MS). Il ne faut pas oublier le monde des objets connectés qui enveront des données aux API (plus besoin de page avec des logos, plus de présentation mais de la vitesse uniquement 4G/5G). Les applications web & mobiles permettants de piloter ses API. Je mets un bemol tout de même, il y aura toujours des sites web à l’ancienne mais moins nombreux. Les iniatives des GAFAM sont d’accélerer le web et même si cela prend quelques années, c’est marche ou crève (même Apple rejoint les autres).
C’est ma vison et j’aimerai bien connaître vos avis et les nouveautés permettant au PHP de résister à une évolution du web et des technologies. Il y a 10 ans je faisais un peu de PHP, aujourd’hui, je me forme sur GO et JS (JS pas franchement par choix mais plus par obligation). Voilà, maintenant faites moi réfléchir 😉
Mais PHP est tout à fait capable de faire tourner une API REST, vu que de base c’est un langage qui réponds à des requêtes HTTP.
Du coup je vois pas en quoi ton argumentaire pousse PHP vers la sortie, j’ai plus l’impression que c’est une évolution de son utilisation qui est en train de se passer (ce qui est effectivement clair)
Si on suit ton raisonnement, le JS glisserait aussi vers la sortie. La V8 de Google est une évolution des perfs(pour faire court), le typescript permet de combler des lacunes du JS, etc. Au final, le JS est un vieux langage qui s’est modernisé. Tout comme le PHP aujourd’hui. Après il faut choisir le langage en fonction des besoins/ressources/etc. Les deux langages sont top.
personnellement, je n’ai trouvé que 2 choses qui aient nécessités d’utiliser autre chose que php.
un push engine, du genre chat temps réel qui a nécessité un peu de code en nodejs pour la partie serveur, j’aurais pu le faire en php, mais franchement.. nodejs était plus adapté pour ca.
et un script python pour déclencher une opération root directe suite à une réception sur une requête web extérieure.. d’ou besoin d’élévation de privilège, de web-data vers root. J’aurais pu aussi le faire en C++, mais l’envie de tester…. une demi journée pour apprendre les bases python nécessaires et remplir le besoin.
bref, tu fais tout ce que tu veux en php, à condition de savoir en sortir quand c’est nécessaire..
et de savoir faire le lien avec de nouvelles technologies pour les exploiter.
mais pour ça, la base, c’est quand même de comprendre quoi fait quoi,comment, à partir de quoi et pourquoi…
ça permet d’imaginer d’autres manières de faire, et des combinaisons de technologies ‘innovantes’ ..
Personnellement ce que j’aime pas avec php c’est qu’il faut avoir du cache pour améliorer les perfs et du coup en fait ne pas exécuter du php pour avoir un php plus rapide. Comme l’installation de opcache est presque un pré requis pour utiliser un framework style laravel ou symfony
« ne pas exécuter du php pour avoir un php plus rapide »..??
un bouquin que je recommande, zen de l’optimisation du code, https://www.amazon.fr/zen-loptimisation-du-code/dp/2736121287 ou comment optimiser et accélérer son code en se donnant le droit de penser… autrement.. et c’est valable quel que soit le langage..
C’est vrai pour ‘n’importe quel frameork ton argument là … framework = chutes de perfs.
Sauf si design from scratch pour un besoin ultra spécifique à l’entreprise (bref les GAFA etc..)
Perso je dev 90% du temps en php et qui plus est c’est du dev pour des amelio / plug-ins WP… J’ai testé d’autres technos back et aucune ne me satisfait autant que le php… Pas par refus loin de la mais nous avons tous nos affinités 🙂
Alors Php est lent, oui, parce que y a pas de possibilité de multithreading ou d asynchrone, le fait qu il soit typé ne change en rien ce probleme qui est partiellement resolu par python et javascript qui peuvent etre eux memes typés. Mais surtout Php from scratch c est une horreur au niveau de l API. L api python contient quasiment la totalité de celle de php mais on peut faire du scripting ce qui est un gros plus, quand a celle de js, elle evolue grce a ecmascript et node. Un moment utilisé des librairies et frameworks, c est bien, mais une librairie standard c est le plus important. Perso ce qui me derange le plus c est la sytaxe et le fait que ce soit que tu puisses pas scripté. Tres bonne review de Jerome!
Regarde Swoole/PHP
Heuuuu ben non, il est possible de faire du multithreading en PHP …
Ceci dit, le multithreading n’a jamais fait gagner de temps !
JavaScript, par contre, ne peur pas être typé (c’est TypeScript qui est typé).
Enfin, Python n’est pas typé (plus précisément, c’est du « typage dynamique », c’est à dire la même chose que PHP5 !
J’aime beaucoup ta logique qui consiste a dire que l’API standard de PHP est faible, et que python en reprend les fonctionnalités avec en plus la possibilité de faire des scripts. l’API standard permet de couvrir quasiment tous les besoins d’un projet moyen, et pour autant que je sache, depuis php 4 tu peux faire des script CLI avec.
Ensuite comparer l’API standard de PHP avec celle de JS… + ecmascript + node… Essaye juste de formatter une date en vanilla JS (ce genre d’opé qu’on fait environ 15 fois par jour quand on dev), et si tu veux on en discute. En lisant ton commentaire, j’ai la vague impression que t’es resté sur le PHP d’il y a 20 ans, et c’est dommage, car ça reste un bon outil pour faire du web.
Cela étant, il y a un point sur lequel je te rejoints parce que ça me donne envie d’hurler tous les jours, c’est la syntaxe, qui est trop verbeuse, et pas des plus simples a lire / écrire.
J’aime telement le PHP que j’ai creer un cms (doorgets) puis un blockchain (inescoin), c’est le seul language qui me permet de partir d’une feuille blanche pour en faire une oeuvre sortir de mon imagination, avec les restrictions des autres aures languages j’ai l’impression que la boite et toujours la même et franchement c’est pas du code…
>>Et y’a plein de gens désespérants.
Bah parfois à lire ton blog, il n’est pas loin de l’être, sans que tu le veuilles pour autant.
Pour aimer ce métier, y a pas à dire faut aimer les gens.
Je ne connaissais pas « Swoole/PHP », c’est marrant on dirait du node.js 😉 et pas très loin du Golang finalement
$server = new swoole_websocket_server("127.0.0.1", 9502);
$server->on('open', function($server, $req) {
echo "connection open: {$req->fd}\n";
});
Il semble que de nombreux langages évoluent dans le même sens ( serveur tcp/http, web socket, …), et donc API, API 😉
Merci pour vos remarques.
Franchement, je fais des applis JavaScript + PHP depuis 10ans, et ces langages n’ont jamais été un frein au développement. Les seules limites sont les miennes, mes connaissances et compétences.
Je déteste PHP non pas par élitisme mais parce que j’ai l’impression que c’est un language is fourre tout bourrer d’inconstance. Coder c’est avoir des patterns bien précis qui garantissent la constance de ton programme quelque soit les conditions. Or, avec PHP c’est très peu possible.
Après, moi je viens du monde de Python donc PHP grosso modo me donne mal à la tête car peu ou pas assez proche du language parler aussi.
Soit dit en passant, monter un site perso facilement y’a pas que PHP qui le fait. Flask (Python) avec un fichier main et un template index tu peux faire de même avec une quinzaine de ligne de code. Après c’est pas hyper connu par rapport à Django.
Essayez l’excellent framework Laravel et je vous assure que même si PHP n’est certe pas parfait, vous ferez de grandes choses en un temps record.
Article très intéressant! Moi, le comble de l’hypocrisie, je trouve, c’est les détracteurs de PHP qui encensent Javascript. Alors que, je suis désolé, le Javascript ça peut s’avérer tout aussi dégueulasse. Il a aussi l’absence de typage, il y a le comportement fantaisiste du mot-clé « this », il y a l’ES6 qui n’est pas compatible avec tous les navigateurs et qu’on est obligé de transpiler en ES5…
PHP est détesté par par des complexées qui aiment se comparer aux autres pour affirmer leur leadership bafouée
Salut les boutonneux 😜, faudrait pas oublier une chose très importante, c’est qu’il est gratuit. C’est à mon avis ce qu’il fait toute la différence, tout le monde connaît le nerf de la guerre ..
return A+
Pour moi effectivement la plupart des détracteurs se sont arrêtés au PHP 4. Si le langage n’avait pas évolué il serait bien mort. Mais PHP c’est une technologie qui évolue, accessible et facile à mettre en place, et désormais aussi assez performante. On trouve facilement des développeurs PHP sur le marché du travail, chose qui est très importante dans le contexte de pénurie actuelle. Des CMS (Drupal, WordPress) et frameworks éprouvés répondent parfaitement à des besoins précis et sont donc souvent le choix tout indiqué. Les membres de la communauté qui font évoluer le langage sont très doués et font un super job depuis ces dernières années, merci à eux. Pour le web PHP est une technologie de choix, et les haters qui ont appris des langages hypes et qui se pensent supérieurs ont juste à mettre leur égo de côté.
Merci de nous éclairer, Php ça va vite et bien. On code comme des porcs mais ça marche !!!
PHP ? mouais, je code depuis des années. Ça va faire 40 ans que je code, un peu dans tous les langages. Moi j’aime bien parce que je peux faire très vite n’importe quoi n’importe comment et en plus ça tourne correctement après. Le problème vient du fait que pour certains il faut un langage strict pour qu’ils s’en sortent, avec de la discipline et de la méthode on arrive très bien à de bons résultats. Moi aussi je râle parfois sur certains aspects de PHP et le pire est quand je tombe sur un mélange infâme de HTML et PHP dans un fichier que l’on n’arrive même plus à qualifier. Le problème vient plus souvent de l’artisan que de ses outils, l’essentiel est de maîtriser ce que l’on a et on arrive à tout. J’ai monté une application lourde récemment et fortement hétérogène, une 1/2 douzaine de langages différents, alors PHP, JS, awk, ps1, scripts etc. c’est toujours pareil : de l’ordre dans la tête et dans les idées et on fait feu de tout bois, suffit de choisir ce qui convient le mieux à chaque fois. J’ai connu l’époque où l’on codait en assembleur, alors coté efficacité du résultat, tout est relatif…
Le pire langage pour moi ? celui que je ne maîtrise pas.
Perso j’utilise php sans plus d’aversion que pour un autre langage. Il est vrai que le typage inconstant est parfois pénible mais ce qui me dérange vraiment avec php c’est sa gestion merdique quasi inexistante d’unicode.
C’est un langage Web, fait pour gérer des sites dans le monde entier et pour peu que l’on veuille des accents ou des caractères asiatiques c’est l’enfer, d’ailleurs je crois me souvenir que c’est une cause de l’abandon de php 6, ils voulaient un support natif utf 8 ou 16, je ne sais plus, résultat… Euhh on oublie php6 on va au 7 direct.
wow, t’as pas bien cherché.. suffit, d’une part d’enregistrer te source sen utf8. et d’autres part, il existe des librairies spécialisées dans la gestion et la conversion entre differents types de caracteres…passer au 7 pour ca..c’est une fausse excuse…
Et bah en tant que développeur, je craint plus de tomber sur un Projets avec du JS ou autre merde react, angulaire, typescript … C est à chaque fois la marque d un projet réfléchi par un singe, et coder avec le cul
Salut, super l’article. Je suis développeur front mais j’ai pas mal fait du Php, alors je raconte même pas les troll que je me prend quand je dis que j’etais dev Php.
Sur le fond, c’est totalement vrai, mais voila dans la vrai vie d’une entreprise les habitudes ont la vie dure. On va plus se tourner sur des technos Java ou Csharp pour faire un backend qui aurait pu tourner Php.
Le dev aurait mis moins de temps, aussi performant, avec les mêmes besoins. Sauf que Php « c’est nul, lent et pas typé ».
C’est incompréhensible au niveau de l’argumentaire mais c’est comme ça.
C’est sur qu’avec de bons framework on peux faire des choses sympa et propre en Php. Mais ce qui compte c’est les briques qu’il y a derrière, c’est à dire d’avoir des libs métiers pour servir vos use case devs. Et là vraiment il y a tellement plus de lib sur d’autres langages que sur Php. Par exemple en python, regarder les thématiques des confs par comparaisons en php:
https://event.afup.org/forumphp2019/programme
https://www.pycon.fr/2018/fr/program
Clairement, les uses cases traités en python sont vraiment plus variés et plus métiers, donc à terme plus porteur.
De + python est plus facile à apprendre que php (pourtant deja facile)
my 2 cts
Lol désolé mais 70% de ces commentaires reflète la communauté PHP. Moi j’ai choisi JS pour la communauté,
l’asynchrone, l’open source (relié à la communauté), les possibilités d’évolutions, les performances (benchmark) et les rapports de github Octoverse. Je suis passé par PHP (Symfony, Zend, pure php) et je n’y retournerais jamais 😅
Node js / Typescript / react ❤️ Cœur cœur ❤️
Je ne suis pas la bonne parole, mais c’est mon avis 😁😘
Bonjour,
Je suis depuis le début des années 2000 sur PHP. Je suis actuellement en homemade et Laravel suivant le projet.
L’inconvénient du Php c’est qu’on peut vite faire n’importe quoi si on n’est pas organisé.
L’avantage c’est qu’on vite faire n’importe quoi :-). Par exemple pour faire un script temporaire je m’embête pas à le coder super propre !! (commentaires, sécurité, tests unitaires, …).
C’est un langage qui a pas toujours une bonne réputation pour ça mais il faut avouer qu’il s’est bien améliorer dans le temps.
Moi, j’adore le php. J’ai commencé a travailler en tant que développeur en 2002. C’était php3 ce projet là. J’ai continué avec cette merveilleuse langage jusqu’à 2017. Lors de ma décision d’immigrer vers Québec, j’ai échangé également de langage, vers c#, en raison de la quantité de postes disponibles.
Aujourd’hui, je connais le deux et je peux affirmer, Php et c# sont bonnes, les développeurs sont <>. Les pires projets dont j’ai travaillé ont été faits en c#/asp.net. PHP me manque, la simplicité, l’agilité, la légèreté.
Mais, je dois être honnête . Avec c# je suis mieux payé 😁
Pourquoi de la haine pure? Le côté interprété suffit à ne pas aimer. J’ai longtemps codé en PHP, je ne le déteste pas mais je l’aime pas non plus. A côté de Java, c’est de la merde et c’est objectif.
Je suis développeur PHP depuis quelques années,
Le gros problème de PHP c’est que la plupart des projets ne dépasse pas PHP5.4 et qu’ils ont pour la plupart été codé avec des frameworks maison où mal implémenté.
On a fait une refonte d’application au boulot avec un front Angular7 et un back Symfony 4 api plateform. c’est le feu!
Et que travailler avec des CMS comme Drupal, Joomla, WordPress …. -> throw up
« PHP c’est de la merde » ça me rappelle une anecdote : dans mon ancienne boîte, le boss, qui était aussi dev, n’arrêtait pas de dire à tort et à travers que « PHP c’est de la merde ». Un jour, il m’a confié un projet WordPress pour créer un Wiki interne. J’ai donc installé le tout, et mis PHP 7. J’ai eu à créer un authenticator bridge entre la stack de la boîte et le site WP, donc j’ai fait une petite classe pour ça, avec typage des paramètres des méthodes, typage des retours, spread operator etc etc j’ai juste utilisé les « nouvelles capacités » du langage. Quand mon boss a vu le code il était sur le cul : « Ah bon ? On peut faire ça avec PHP ? ». Et le sys admin de l’achever « et en plus il est 2x plus performant que les anciennes versions » 😀
Bref tout ça pour dire que, comme pour tout malheureusement, les préjugés ont la vie dure.
Super article btw 😉
Très bon article !
Étant dev PHP depuis une bonne dizaine d’années, je peux effectivement dire que certains avantages du PHP sont aussi ses inconvénients !
Je n’ai aucune haine envers les autres langages limite, si j’avais le temps, j’aurais voulu en apprendre beaucoup plus ! (Ruby,Python,Java, Node.js,React, Swift, Android, Go etc…)
Le PHP est très modulaire et permet de faire presque ce que l’on veut.
Du coup, comparer aux autres langages, oui ça peut te paraître dégueulasse (pas de typage etc…)
Mais c’est au développeur de fournir un travail supplémentaire pour respecter ce genre de règles^^ Et c’est ça qui joue en la défaveur du PHP.
Dire que c’est de la faute de PHP parce que le projet est mal codé, c’est absurde !
C’est comme si tu fonce volontairement en voiture dans un mur et dire « c’est pas moi, c’est la voiture ».
Bonne journée !
Bcp de bêtises techniques dans cet article.
Allez juste une récurrente également valable pour php7.4 : php peut être maintenant fortement typé.
Et bien c’est faux : il n’est tjs pas possible même en php7.4 de créer une propriété tableau d’objets telle : public MonObjet[] $monTableauDObjets
Et c’est qu’un petit défaut … Et pourtant j’adore php… mais de toute évidence java et c# vont bien plus loin.
Je t’invite à lire cette article : https://stitcher.io/blog/typed-properties-in-php-74
Cette version 7.4 s’inscrit dans la continuité du langage d’avoir un typage fort pour PHP.
Quelles sont les autres « bêtises » ?
tu cherches quoi?? une IA qui fait ton boulot et te mets au chômage.?? c’st de ta responsabilité de savoir ce que tu fais et ce que tu manipules.. et c’est justement une des forces de php comme du C ou C++ par exemple de pouvoir caster, transtyper, tordre les données dans le sens qu’on veut, ou pas.
Il y a des philosophie différentes. Java et C# d’un côté. Python, Ruby et JS de l’autre.
PHP essaye de faire le grand écart, en étant utilisable par les développeurs du dimanche (les « weekend warriors » comme les appelle Rasmus) qui veulent coder un petit site vite fait, aussi bien que par les grosses entreprises qui veulent faire un site solide à très gros trafic.
Et il faut reconnaître que globalement, il s’en sort plutôt bien.
Essaye de faire un petit site rapide en J2E, on va rire.
Essaye de faire un gros site en Python, si le typage fort est primordial pour toi, on rira aussi.
Excellent article !!
Un titre racoleur, faux et des commentaire d’une stupidité affligeante.
PHP n’est pas un langage détesté, à part pour les mecs qui font du JS, mais on peut pas leur en vouloir, ils savent pas ce que c’est programmé réellement, ils utilisent un langage qui a initialement été développé pour modifier le DOM et rien d’autre, qui possède une syntaxe à vomir et qui 20 ans après est toujours pourri en terme de performances.
PHP c’est une recette qui marche, il s’est très fortement inspiré du C d’un point de vu syntaxique, il possède d’excellentes performances et il se met à jour pour faire plaisir aux pseudo-devs qui aiment les dernières choses « hype » comme les arrow functions ( c’est très moche syntaxiquement ).
Son succès est principalement du à son modèle proche du C, à l’époque un dev n’avait pas grand chose à faire pour faire du PHP si il avait déjà fait du C ou C++, contrairement à d’autres langages qui nécessitaient un apprentissage.
Quand j’entends un mec se plaindre de devoir utiliser une fonction array_map et non une méthode sur un object directement on comprend pourquoi les mecs sont de plus en plus mauvais. Ces « devs » si on peut appeler ça des développeurs n’ont aucune connaissance en système, en mémoire, en asm et après ils viennent se plaindre qu’un langage manque de performance alors que la POO et donc l’utilisation d’objets et d’allocation mémoire à outrance est une plaie, pourquoi à votre avis on utilise le C pour tous les systèmes embarqués au monde ?
Tu as lu l’article en entier ?
Tu défend le PHP comme si c’était ta mère, tu es ridicule, c’est affligeant.
Ta religion te perdra : https://www.jesuisundev.com/la-religion-chez-les-developpeureuses-informatiques/
Facebook est codé en réact maintenant
Le frontend oui en effet.
Pas le backend.
« PHP peut être fortement typé »
*tousse*
Je vis de la création d’outils en Excel / VBA depuis 15 ans. Je pense que l’on pourrait écrire le même article à propos de ce langage (encore plus détesté que le VB6). Tout est permis pour faire du code très très sale en VBA, mais on peut le faire bien avec les bonnes méthodes.
Débugger un outil codé par un stagiaire c’est horrible. Mais on peut tout à fait développer proprement une application où les feuilles Excel sont les écrans utilisateurs, le code VBA la couche de contrôle et une base Access la source de données. Et on le fait bien plus rapidement qu’avec les environnements standards. Bien entendu, cela permet en plus de travailler directement avec les gens du métier et de bypasser les DSI (ce qui est pratique parfois !).
quel(le) langage
tu trouve(s)
Historiquement, il y a une très bonne raison qui explique pourquoi le PHP a eu un tel succès.
Dans la deuxième moitié des années 90, quand les premiers hébergeurs mutualisés sont apparus, ils proposaient le Perl. Mais un processus Perl pouvait manger toutes les ressources (CPU et RAM), il n’y avait aucun garde-fou.
Quand le PHP est arrivé, les hébergeurs l’ont adoré. Le fichier de configuration (php.ini) permet de définir le temps d’exécution maximal et la quantité maximale de mémoire qu’un processus peut consommer. Pour eux c’était du pain béni, ça permettait de mettre plus de clients sur un même serveur.
On peut remarquer qu’aujourd’hui encore, c’est à ma connaissance le seul langage qui propose nativement cette fonctionnalité.
C’est comme ça que le PHP s’est très vite répandu à la fin des années 90. Il était partout.
Et comme il était partout, de plus en plus de gens l’ont utilisé, pour des projets de plus en plus sérieux. C’est comme ça qu’on s’est retrouvé dans les années 2000 avec des sites comme Wikipedia, Facebook, Yahoo et Youporn développés en PHP.
Comme tu le dis dans l’article, beaucoup de développeurs détestent le PHP justement pour cette raison. Il est partout, il est facile d’accès. Il n’est pas assez élitiste !
Le revers de la médaille, c’est évidemment que beaucoup de personnes bricolent un petit site en PHP, puis se proclament développeurs. Ça n’aide pas la réputation des développeurs PHP.
Ça m’a toujours amusé de voir des développeurs dire que le PHP est trop simple, n’importe qui peut se croire développeur en jouant avec… et ensuite trouver une pirouette pour dire que la syntaxe de PHP est trop complexe par rapport à celle de leur langage préféré. Faudrait savoir.
Je ferais un parallèle avec MySQL. Ce n’est pas non plus une techno très « hype ». J’ai vu plusieurs startups qui considéraient que MySQL est has been, et qui utilisaient MongoDB. Mais elles l’utilisaient (presque) toutes très mal, en faisant du pseudo-relationnel, ce qui donne des performances affligeantes.
Je pense que la programmation web est devenu l’utilisation à outrance de bibliothèque externe pour soit disant par réinventer la roue alors qu’il est rare qu’on utilise plus de 10% de ce dit framework/bibliothèque, etc . C’est soi disant pour des raisons de sécurité, pour ne pas réinventer la roue (C’est vrai trop Has been de réfléchir à la résolution d’un problème par soi même), etc. Or y’a des études qui disent que faire appel à des ressources externes peuvent être source de failles. Mais le plus gros soucis dans tout cela c’est que ne pas utiliser de Framework est devenu impossible pour certains développeur. Mais comme les modes, tout cela passe d’une mode à un autre alors que PHP, Javascript lui ne bouleverse pas tout d’une version à une autre. D’ailleurs ces « frameworks » / bibliothèques sont bien souvent issues d’une culture populaire entre développeurs / profs en développements qu’autre chose. Je ne dis pas qu’il ne faut jamais les utiliser mais je pense qu’il faut garde raison garder. On parle aussi souvent du « cœur métier ». Ça me fais bien rire quand j’entends ça. Le cœurs métier d’un développeur c’est quoi? Un utilisateur à un besoin, le développeur réponse à ce besoin de la façon techniques la plus adaptés. Je pense que les développeurs veulent surtout en faire le moins possible et je trouve ça dommage pour notre métier. D’ailleurs aujourd’hui si tu maitrises pas les frameworks du marché, bien du courage pour aller dans des grandes entreprises.
En quoi PHP t’empêche d’implémenter des patterns ?
Le PHP est bien pour le web mais il faut l’utiliser avec parcimonie ! C’est-à-dire pour les choses qu’il sait bien faire (fonctionnalités back-end). J’entend par là communiquer avec une base, traiter un formulaire, envoyer un mail, créer un espace membre, rendre un menu actif, un forum…
Je ne vois pas l’intérêt de créer un site 100% en PHP en remplacement de technologie front comme du html, css et javascript à moins que cela soit pour son apprentissage perso.
Ma confrérie – et moi-même y subsumant; promulguons l’absolutisme Javascriptique.
Je suis descendu vous annoncer la grandeur de notre miséricorde.
Si vous renoncez à vos démons et consentez à la purge, l’intercession au grand V8 fera rayonner sur vous ses stacks.
Vos modules fonctionneront indifféremment en Back et en Front, et vous dispenserez par composition tous les paradigmes du royaume céleste; pointeurs mémoire et listes chainées circulaires feront foisonner vos arbres de nœuds, et la moisson sera bonne.
Je retourne à mes libations.
Merci.
Merci pour cet article ! J’adore PHP et le SEO avec juste une couche de javascript 🙂
« Pourquoi les développeurs détestent PHP »: Ne faites pas une généralité avec une poignée cas !
Si les développeurs détestent le PHP si tant que ça comment expliquer alors qu’il est l’un des languages les plus utilisés ?
Je suis dev web et j’adore la programmation web. Celui qui n’aime pas les PHP n’est pas un vrai développeur web back-end/n’est pas un développeur web back-end ou alors il programme dans un autre language.
Et pourquoi souhaiter la mort de PHP ? Car il évolue malgré vos dires et de plus c’est la base de symfo (bien que je suis pas fan du bricolage).
Les nouveautés et changements dans PHP8: https://kinsta.com/fr/blog/php-8/
Si PHP existe toujours c’est qu’il corresponds aux attentes des développeurs tout simplement et qu’il sans doute plus lisible à la relecture. Mais il est aussi Open-Source contrairement à l’ASP.net !
PHP est très puissant: en effet on peux créer des algorithmes complexes, on interagir facilement les autres éléments du serveurs (programmes, infos sys, …).
Etant développeur web avec une grosse palette de connaissance dans différents langages, voila mon diagnostique. Le problème avec tout les langages, c’est le manque de connaissance de la majorité des gens qui pratiquent le codage. Chaque codeur fait a sa façon sans tenir compte d’un standard facile a faire mais que peu font. ensuite avec tout ces cms, Framework, on en voit peu qui dur dans le temps car est vite dépassé. Par contre il y en a 2 qui sont toujours d’actu, c’est le PHP et le javascript qui sont la base de tout ce qui est en route actuellement (même si je pourrai dire qu’il y en a d’autre comme python, java et C++ qui sont toujours la en force aussi malgré leurs âges). En tout cas je dirai juste que peut importe le langage utilisé, le plus important c’est de connaitre la base des langages pour faciliter la compréhension dans le temps des Framework (ce qui n’est généralement pas le cas la ou j’ai pu travailler et voir aussi) Donc dire qu’on est contre un langages, c’est qu’on est pas apte a le coder c’est tout. Pour mon cas, j’adore le PHP, tout comme le javascript et ces 2 langages me permet actuellement de coder pratiquement sur n’importe quel frameworks (react, vue.js, angular, symfony, laravel, …).
Php est un langage qui tend à documenter ses bugs en feature… Par exemple, je n’ai pas touché au php depuis 2007 (php5). A l’époque, lors de l’introduction des refs en php5, il y avait ce bug : https://3v4l.org/83D7R
aaa
[1] => bbb
[2] => bbb
)
Pour « corriger » ce bug il faut unset $v entre les 2 foreach car php leak le scope du ref $v en dehors du premier foreach. Le 2nd foreach vient donc silencieusement assigner des valeurs dans une ref et donc modifie le tableau.
Ce bug existe toujours 15 ans après dans php 8rc1. Même le C++ qui sort un standard ISO tous les 3 ans arrive à corriger ses bugs plus rapidement que ça (ca n’a pris que 8 ans pour supprimer auto_ptr).
Et c’est malheureusement un exemple parmi tant d’autres qui m’ont fait me détourner du php. Le manque de déterminisme du langage est alarmant.
Pourtant j’ai commencé le dev il y a 18 ans avec php4…
C’est drôle ; tu remplaces PHP par le nom d’un ex-candidat aux élections présidentielles (chut on veut pas passer pour un ogre mangeur d’enfants, fasciste etc.) et 80% de l’argumentaire tient la route.
Les préjugés ont la vie dure.