mageekblog - L'avenir de PHP vu par Éric Daspet - CommentairesLe blog personnel de Frédéric Hardy. Au menu, PHP, agilité, FreeBSD, cuisine et photographies.2021-12-02T08:20:54+01:00Frédéric Hardyurn:md5:26874ca5b8cd4cac8d08b0e68e64f63aDotclearL'avenir de PHP vu par Éric Daspet - Jean-Marc Fontaineurn:md5:7e824a39dafd9b2de35ff867586451222010-09-02T14:29:44+02:002010-09-02T16:43:30+02:00Jean-Marc Fontaine<p>Merci Eric pour cette interview passionnante. Je partage une bonne partie de ton point de vue.</p>
<p>Concernant l'industrialisation, c'est un sujet qui m'intéresse depuis un bon moment comme certains l'auront remarqués ;). Je partage complètement ta vision de la majorité des "professionnels de PHP". Je pense également être un passionné et j'adore la notion d'artisanat. Le terme était même dans la description que je donnais de Kanopée, la société que j'avais créé il y a quelques années.</p>
<p>Alors pourquoi promouvoir aujourd'hui l'industrialisation de PHP dans ce cas ? Tout simplement parce que, et là je rejoins NiKo, sans connaissances approfondies, la passion ne mène pas très loin.</p>
<p>Lorsque je prêche pour l'industrialisation des développements PHP, je ne souhaite pas créer des robots décérébrés. Lorsque je recrute quelqu'un, je mise toujours sur le passionné même s'il est en retrait techniquement parlant parce que la passion ne s'apprend pas.</p>
<p>Ce qu'il faut bien comprendre c'est que dans un contexte professionnel, les équipes changent souvent, les projets sont souvent longs et coûteux. Il est important de les encadrer un minimum pour éviter les dérapages. Après, cela ne détruit pas la passion. Il y a vraiment moyen de s'amuser dans un cadre industrialisé. J'en fait quotidiennement la preuve.</p>L'avenir de PHP vu par Éric Daspet - Eric Daspeturn:md5:2a3c93aa975934cbba803ec9d93111fc2010-09-02T12:41:21+02:002010-09-02T12:16:22+02:00Eric Daspet<p>Je vais répondre à plein de gens d'un coup, ça va être long, désolé.</p>
<p>@Thomas: C'est une bonne question, mais qui n'a finalement que peu de réponse. Chacun imagine son langage idéal. Vu que justement je m'adresse à la passion et au plaisir, les goûts sont différents pour tout le monde et il n'y a pas "une" évolution. D'ailleurs Python ou Ruby sont finalement très proche. Aucun langage, ni ces deux là ni Java ou PHP n'ont réellement inventé grand chose. Il s'agit juste de différences de syntaxes, et des fonctionnalités qui en découlent.</p>
<p>Ceci dit, quelles pistes innovantes ? J'aimerai plus de dynamisme. Ca avance avec les fonctions anonymes, mais le minimum serait d'avoir des vrais attributs virtuels. C'est un minimum pour ne pas avoir à faire des getter/setter partout. J'adorerai aussi avoir un peu de méta programmation, malheureusement ça me parait impossible avec l'orientation syntaxique de PHP. Tout ce qu'on peut voir de ce côté ce sont des annotations (d'ailleurs on en parle) mais c'est vite très moche, très très moche, ça me fait fuir d'ailleurs.</p>
<p>@Megatoto: Oui, tu as certainement raison en partie pour la professionnalisation. Maintenant il y a une grosse partie la dedans qui est ni plus ni moins de l'administratif, et une autre partie sur laquelle je ne te suis pas. La plupart des passionnés Ruby mettent en oeuvre cucumber pour l'intégration continue, puppet ou capistrano pour le déploiement. C'est simple et ça fait presque tourner ça en jeu. Les problématiques sont ici encore les mêmes côté professionnel ou pas. Tout au plus les outils permettent des choses un peu différentes (réplication par exemple) côté professionnel. Et encore, parce que côté associatif/perso j'ai vu pas mal de sites qui sont loin devant la majorité des applis du monde "professionnel".</p>
<p>Mais même sur ces aspects, crois moi, le niveau moyen des prestataires professionnels (tant en prestation de service que dans les entreprises utilisatrices) est très bas, très très bas. Prends n'importe un passionné au hasard, un professionnel au hasard, il y a de bonnes chances pour que le premier soit bien plus compétent, même sur l'intégration continue, le contrôle qualité et le déploiement. Et quand ce n'est pas le cas, parce que le passionné n'a jamais eu besoin de faire un déploiement sur un architecture complexe, laisses lui quelques jours et la différence de compétences sera de nouveau en faveur du passionné.</p>
<p>Mais nous sommes d'accord, les termes de professionnalisation et d'industrialisation ne sont pas dénués de sens, et même de sens positif. Simplement quiconque y voit une échelle de valeur ou de compétence en faveur du terme "professionnel", même sur des domaines complexes ou d'environnement, se met le doigt dans l'oeil jusqu'au coude. D'autant que la plupart de ce que j'appelle passionnés en font ou en feront aussi leur métier. C'est surtout cette volonté de se croire au dessus des autres par le simple fait qu'on est dans une entreprise qui me fait réagir en fait.</p>
<p>@Ivan: Crois moi, je connais assez PHP, son but, et ce qu'on peut en faire. Mais des langages glue qui manipulent la base les fichiers et les sorties en tout genre il y en a plein. Et les autres le font souvent mieux. Une des grandes spécificités au départ c'était son orientation web et les bibliothèques associées. Depuis les autres langages font aussi bien (et mieux par certains côtés).</p>
<p>Côté fun je ne parle pas de fonctionnalités, mais de style de programmation, d'emmerdements pour arriver à une tâche. Avec 13 ans de PHP dans les pattes et quelques mois d'expérience en ruby, ne codant dans le dernier que pour quelques scripts persos, je code presque plus facilement en ruby. Tout est faisable en PHP et je saurai le faire les yeux fermés, mais j'ai frustration et agacement trop souvent pour que ce soit une bonne idée. Du coup côté perso, c'est du ruby.</p>
<p>Et oui, il y a les API de flux, de gestion XML ... mais tout ça c'est quoi ? PHP 5.3 ? sauf si j'ai manqué des étapes il n'y a rien de révolutionnaire là dedans depuis PHP 5.0, qui date d'il y a plusieurs années. Oui, il y a les fonctions anonymes mais bon, c'est présent partout ailleurs depuis des lustres. Ailleurs on n'aurait jamais osé sortir le langage sans ça.</p>
<p>Sur le côté test, je suis surpris, phpunit me semble à la ramasse par rapport à ce qui se fait ailleurs. Je ne parle même pas du fait que ruby ou python sont assez dynamiques pour permettre de tester sans monter des architectures complexes. Quant aux analyses statiques, pour avoir dans le même bureau Gabriele Santini qui a fait évolué PHP code sniffer et qui bosse sur ce genre de choses, on reste à des années lumière de l'état de l'art. Reste le système de type, mais là il vaut mieux que je n'en parle pas <img src="/themes/default/smilies/smile.png" alt=":)" class="smiley" /></p>
<p>Je semble peindre un tableau très noir mais tout ça n'est pas l'important justement. Chaque langage a ses avantages et ses défauts, et peu importe. Par contre franchement tout ce que tu me cites ne sont pas mais alors pas du tout des forces de PHP.</p>L'avenir de PHP vu par Éric Daspet - Yacodourn:md5:1331775fdf3faa577bff6636efe48e3d2010-09-02T10:09:17+02:002010-09-02T10:00:37+02:00Yacodo<p>Belle analyse, je, et sûrement d'autre, fais l'amalgame entre professionnel et langage robuste. PHP manque de certaines choses, doit en virer d'autres. Par contre j'attache plus cette notion de besoin de ce faire payer à l'industrialisation.<br />
Ta définition, correcte, de professionnalisation n'empêche pas non plus un très bon niveau d'utilisation, on peut aimer et en vivre, je crois qu'on n'a déjà des bon exemples sous les yeux, non ?<br />
Le contraire est tout à fait possible, des projets open-source fonctionnels ni fait ni à faire au niveau de la technique, et pourtant ils ne sont pas pressé par le temps.<br />
Il y à l'amateurisme et l'expert, le premier fera un boulot bâclé (souvent un manque de connaissances/expériences), et l'autre qui pourra débiter les lignes les plus techniques sans soucis. C'est souvent le premier qu'on n'embauche, ce qui discrédite les personnes qui aime ce qu'elle font.</p>
<pre></pre>
<p>Plus ça va plus j'ai l'impression que les contributeurs laissent PHP se reposer sur ces lauriers, et PHP risque de perdre beaucoup comme tu le souligne.<br />
J'ai commencé en PHP 5, et fait peu de 4, donc je n'ai pas vu grand chose niveau amélioration, et je m'amuse avec ce langage, mais c'est souvent de la routine, il me manque un truc. C'est pour ça qu'aujourd'hui je me décide d'apprendre Python ou Ruby, si j'arrive à faire un choix.</p>L'avenir de PHP vu par Éric Daspet - NiKourn:md5:0abb836c293ba99fdaf1ed7eedcb8e4f2010-09-02T09:53:18+02:002010-09-02T08:58:04+02:00NiKo<p>Je suis globalement très en phase avec Éric, ce qui ne laisse par ailleurs rien augurer de fantastique pour PHP dans les années qui viennent si la core team ne se prend pas plus en compte les retours de la communauté.</p>
<p>Je rejoins cependant megatoto sur un point: être un professionnel passionné, c'est possible (du moins j'ai l'impression d'en être un, si je me plante vous le dites). D'ailleurs Éric en est un autre, et j'ai l'impression que beaucoup de ceux qui ont été interviewés ici le sont également. Brassens (encore un guitariste, tiens), disait « sans technique, la musique n'est qu'une sale manie », et je pense que cela s'applique aussi à notre "profession" (tiens, quand on parle du loup...) : la plus belle des passions pour un langage, un support, un art n'est rien si elle n'est accompagnée des bonnes pratiques qui en découlent (même si dans notre cas, le Web, beaucoup restent encore à inventer).</p>L'avenir de PHP vu par Éric Daspet - Ivan Enderlinurn:md5:2da0b19beae604788538e9c1b0812e342010-09-02T09:36:44+02:002010-09-02T08:57:49+02:00Ivan Enderlin<p>Hey :-),</p>
<p>J'aime bien (beaucoup en fait) l'analyse de Éric sur la professionnalisation de PHP. Le terme est vide de sens. Malheureusement, Metagoto n'a pas tort non plus. On attribut à professionnel des caractéristiques plus logicielles (je n'irai pas jusqu'à dire bureautique mais pas loin, la secrétaire du Web quoi, capable de cliquer). Pour moi, un professionnel avec le sens qu'on lui donne dans cet article, se rapproche plus d'un apprentissage à utiliser un logiciel (ose-je même dire IDE ? le programme qui code à notre place ? on cite aussi les bloatwares et autres joyeusetés) plutôt que d'un réel apprentissage passionné de l'Informatique. Beaucoup ne savent pas répondre à la question : « qu'est-ce qu'un langage ? », et beaucoup énumère les langages qu'ils connaissent ou « maîtrisent » comme si cela était un gage de qualité. Erreur.</p>
<p>Metagoto a très bien résumé (il est fort pour résumer, si on comprend ce qu'il dit ;-)) la situation. Les langages sont de plus en plus factorisés sur des machines virtuels et seuls les paradigmes auront leurs importances. Et c'est là que le bât blesse. Ceux qui sont « professionnels » du Web connaissent les outils mais pas les paradigmes. Ils n'ont pas compris à quoi servaient un langage.</p>
<p>Je parle de servir car un langage répond avant tout à un problème. Éric l'a souligné à la fin : peut-être qu'il utilise PHP pour des choses qu'il ne doit pas faire. Est-ce qu'on connaît vraiment le but de PHP ?</p>
<p>Là est le problème. PHP est un langage glu. Sa grande force est de pouvoir être le pivot entre beaucoup de technologiques (bases de données, manipulations de fichiers, sorties et traitements en tout genre). C'est un langage bâtard. Il est entre tous les langages. Il a donc beaucoup de forces mais aussi beaucoup de lacunes.</p>
<p>Une fois que l'on voit PHP comme ça, on peut se dire : oui, il lui manque des choses, mais il est entre tous et donc on peut s'amuser avec tout le monde ! Bien. Soit. C'est parti.</p>
<p>Quand on dit que PHP manque de fun, je ne le crois pas. Oui il lui manque certaines fonctionnalités, mais comme dans beaucoup d'autres langages. Aucun n'est parfait.<br />
Et le fun dans PHP actuellement, il n'est pas dans les formulaires, les lambda-calculus ou je-ne-sais-encore, il est dans les nouvelles API de flux par exemple, dans les nouvelles gestions XML. Oui, ce sont des fonctionnalités non PHP 5.3, mais les gens les connaissent mal tout de même.</p>
<p>Il faut aussi chercher côté tests, analyses statiques etc. PHP a un système de type formidable qui permet des recherches simplement sans limite sur les tests ! Son système de type est une force, une réelle force, et un avantage certain. Il faut juste savoir le manier et l'utiliser comme il faut.</p>
<p>On parle de framework super évolués qui migrent tous vers PHP 5.3 mais très peu exploitent véritablement toutes les nouveautés incroyablement fun de PHP.</p>
<p>Ce que je veux dire, c'est que pour trouver du fun dans PHP actuellement, il faut creuser dans le langage, pour de vrai. Pourquoi ? Car on le pratique tous depuis très longtemps et qu'on le connaît par cœur. Dur de surprendre des habitués. Mais PHP a encore de beaux jours devant lui, à mon humble avis.</p>
<p>Enfin, un langage sans framework ne sert pas à grand chose. On voit des frameworks de plus en plus fun autour de PHP et c'est aussi là que le fun va apparaître. Un langage est un outil. Le fun est construit sur l'outil. C'est ce qu'on fait de l'outil et de la façon dont on le manipule qui rend les choses fun.<br />
Javascript est fun 5mn, mais NodeJS est fun un sacré moment (pour prendre un buzz-example ;-)).</p>
<p>Et oui, c'est comme la guitare ou la musique :-P</p>L'avenir de PHP vu par Éric Daspet - syndraelurn:md5:e796362940b568546ce14e3f2b0236fd2010-09-02T09:26:20+02:002010-09-02T08:58:04+02:00syndrael<p>Etant donné tes compétences, si quelqu'un te sert de référence, je me prosterne sans poser de question.. <img src="/themes/default/smilies/lol.png" alt="LOL" class="smiley" /> !!<br />
S.</p>L'avenir de PHP vu par Éric Daspet - metagotourn:md5:b700733ab7652fb028debf5d4f2ded212010-09-02T08:04:08+02:002010-09-02T07:37:39+02:00metagoto<p>@Thomas: Ce "bon" langage est javascript.</p>
<p>Au dela des langages (ou en deçà), ce sont plutôt leurs implémentations et contextes d'exécutions respectifs qui importent. Python, ruby, js et d'autres sont tous déclinés sous diverses variantes (CPython, JRuby, V8 etc). Certains fournissent leur propre VM, à l'instar de php, d'autres ciblent la java VM, le CLR (.NET), LLVM etc. Clojure et Scala sont les stars du moment et tournent sur la java VM.</p>
<p>A terme, j'imagine que les langages seront de plus en plus abstraits: de simples specs. On les retrouvera implémentés pour une ribambelle de VM. Ils capitaliseront sur leurs paradigmes et originalités idiomatiques (notamment leur facultés à exprimer la parallèlisation). La richesse de leur librairie standard sera secondaire puisqu'une VM commune apportera bindings et cross références à moindre frais. En fait, ce processus est déjà en marche.</p>
<p>Je rebondis sur ce que dit Éric Daspet à propos de la professionnalisation et de l'industrialisation. On peut être amateur passionné et techniquement au point, il n'empêche que sans une maitrise correctes des tools annexes pour l'intégration continue, le controle qualité ou encore le déploiement, et bien on ne peut être considéré comme aussi compétent qu'un professionnel moyen dont la tache est de manipuler ces outils quotidiennement. La professionnalisation passe avant tout par ce que je pourrais appeler grossièrement la "logistique". La créativité et la valeur technique ne sont pas des critères en soit, oui, mais cela ne veut pas dire pour autant que le terme "professionnel" est dénué de sens. Exactement comme dans le milieu des guitaristes en fait <img src="/themes/default/smilies/wink.png" alt=";)" class="smiley" /></p>L'avenir de PHP vu par Éric Daspet - ValCapriurn:md5:fcfc4b4edfa4cb2340cfb8a8a32807d82010-09-02T02:04:11+02:002010-09-02T07:33:21+02:00ValCapri<p>Super interview ! Bravo ! comme je suis étudiant et passionné par l'Informatique (Je veux faire de ma passion, un métier), je suis tout à fait d'accord avec toi, il faut que PHP nous surprenne, qu'ils nous ramène le fun, l'envie d'aller plus loin. Pour le moment, je me demande si il ne faudrait presque pas forker PHP et qu'une équipe de passionné le fasse évoluer puis soumette tout cela au PHP Group. Quand je vois le Java, (voire même le C), je trouve qu'ils sont parfois plus fun que PHP.</p>
<p>Et puis comme tu le dis, si bien :<br />
"Parlons de passion, de valeur technique, d'amusement, car c'est ça qui fait un bon langage, y compris pour des résultats sérieux, complexes et solides."</p>
<p>Il est vrai que les frameworks sont en train d'aider à tirer PHP vers le haut. Dommage que certaines personnes ne le remarque pas ! Et dénigre toujours PHP car a mon avis, ils l'ont essayer un jour et ne veulent pas retenter l'expérience.</p>L'avenir de PHP vu par Éric Daspet - Thomasurn:md5:60d77b840e370d7a9dab9fa59ac6bda62010-09-01T23:01:40+02:002010-09-01T22:04:14+02:00Thomas<p>Des réponses bien intéressantes je trouve, surtout en ce qui concerne la vision du métier et le rapport entre artisanat et industrialisation. Courte question à propos du dernier point : ce serai quoi, alors, un (bon) langage qui soit différent de Python, de Ruby et de Java ? C'est quoi les pistes innovantes à évoluer ?</p>L'avenir de PHP vu par Éric Daspet - Sébastienurn:md5:147d55395409025ab8b435d33b6364b02010-09-01T21:19:21+02:002010-09-01T22:04:14+02:00Sébastien<p>J'aime beaucoup cette idée de passion. Un langage de programmation, ce n'est finalement qu'un support à la créativité. Un développeur passionné fera de la magie avec (presque) n'importe quelle langage de programmation !</p>
<p>"Programming languages are like girlfiends : the new one is better becaure YOU are better."</p>
<p>Quand au développement de PHP, oui, il stagne et il ne nous surprend plus... Je me souviens de la sortie de PHP 5. Toutes ces nouveautés : une vraie révolution ! C'était il y a longtemps, trop longtemps, hélas...</p>