- Peux-tu te présenter en quelques mots ?
-
Eric Daspet, Consultant Web, PHP, Qualité, Performance et Méthodes agiles.
Pour dépasser les quelques mots, PHP est le langage avec lequel j'ai commencé à m'amuser au niveau personnel. Je suis l'activité depuis les premières versions et, forcément, j'ai continué à développer ces compétences professionnellement, tout d’abord en SSII puis à Yahoo!.
J'ai eu l'occasion de co-écrire le pavé
PHP 5 avancé
, de faire du développement, de l'expertise, de la gestion de projet, de l'architecture, du conseil, des conférences, sur PHP et sur tout ce qu'il y a autour ou à côté.Depuis quelques temps, j'ai aussi une autre casquette intitulée
front-end web
.Je m'intéresse à des technologies comme html, css, javascript, http, mais aussi aux questions relatives à la qualité des sites web, à la valorisation du métier, aux méthodes et à l'agilité, ainsi qu'à la performance.
C’est entre autres ce qui m'a amené à co-fonder les conférences Paris-Web et à commencer la rédaction d’un livre sur la performance des sites web.
- Que représente pour toi l'arrêt du développement de PHP 6 ?
-
La décision en elle-même est bonne : quand ça dure si longtemps et que ça ne bouge pas, il faut être humble et accepter d'arrêter pour repartir correctement. Maintenant le fait que PHP 6 n'ait pas réussi est assez symptomatique de ce qu'il se passe dans l'équipe interne de PHP.
Le langage s'est développé un peu n'importe comment depuis les débuts de PHP 5, et l’échec de PHP 6 en est une des conséquences, et peut être pas la pire.
Le pire, c’est peut être justement que les œillères et les boules quiès d’une partie de l’équipe au coeur de PHP entraîne jour après jour le désamour entre les utilisateurs et le langage.
Les expérimentés et passionnés louchent de plus en plus vers Ruby et Python.
On peut craindre que PHP revienne à son image ancienne de mauvais langage pour mauvais développeur si cette tendance se confirme.
Ce qui est arrivé avec PHP 6 peut mettre en branle cette tendance mais en est aussi déjà un peu une conséquence.
S’il y avait eu plus de dynamisme, les choses se seraient peut être passées autrement.
Maintenant, ce peut être aussi une manière de rebondir et de se focaliser sur une avancée plus progressive.
C’est tout ce que je souhaite.
Ça en prends en partie la direction, mais rien que l'abandon du support Unicode va faire souffrir de nombreuses équipes web.
Je ne prendrai pas le risque d'être trop optimiste même si je suis content de revoir des avancées.
- En conséquence, quelles sont tes attentes vis à vis de la prochaine version ?
-
Clairement j'ai besoin d'un vrai support Unicode. Je n'ai pas forcément besoin qu'il soit natif dans les chaînes de caractères, mais que les fonctions de base gère les caractères sur plusieurs octets, les collations, les comparaisons, la normalisation, etc.
Dans le registre réaliste j'ai longtemps attendu les espaces de nom, les fonctions anonymes et les fermetures lexicales.
Il y a probablement encore des améliorations possibles. Je suis convaincu qu'il faut aussi apporter une vrai dimension dynamique à PHP.
Cela passe par de vrais attributs virtuels, la possibilité de modifier une classe existante, un système de mixin bien fait.
J'attends aussi l'abandon des anciennes directives de configuration qui ont pénalisé des années le langage, un PDO aux hormones avec une couche d'abstraction intégrée, et une intégration par défaut d'APC.
Dans le registre plus idéaliste j'aimerai un vrai modèle objet complet pour le cœur du langage, remettre une cohérence dans tout le jeu de fonctions disparates et désorganisées, ainsi qu’une refonte totale du système d'erreur et un système de persistance pour éviter de tout recharger / ré-exécuter à chaque requête au lieu de la béquille qu'est APC.
Pour l'instant on se refuse à faire de gros changements à cause de la sacro-sainte compatibilité arrière, tout en acceptant des petites modifications qui amènent à presque chaque version une rupture de cette dernière sur un ou deux détails.
Le résultat est qu'une migration demande toujours une vérification mais que le développeur n'a pas les améliorations qu'il est en droit d'attendre.
Il faut accepter d'évoluer, et ça ça n'a pas l'air gagné.
Mais en fait, il faudrait surtout que PHP devienne un langage avec lequel on ait envie de développer.
Pour l'instant c'est surtout
l'outil qui fonctionne
avec lequel on reste pour plein de raisons très sérieuses, mais aucune liée au cœur.Python, Ruby et quelques autres ont des leçons à donner sur ce point, et je ne parle pas (que) de la syntaxe.
Fun, élégance et passion sont indispensables.
- Penses-tu que la communauté des contributeurs a tiré les leçons de PHP 6 ?
-
Je ne pense pas que les contributeurs aient tiré les leçons.
Je ne pense d’ailleurs pas que, dans le cas de PHP, associer communauté et contributeurs dans la même phrase soit pertinent.
C’est peut être justement là le problème.
D'un côté, on se remet à faire évoluer le langage et à un peu plus écouter les demandes des développeurs.
De l'autre, passé les quelques écoutes qui ont suivi l’abandon de PHP 6, je n'ai pas l'impression que l'équipe du coeur ait fondamentalement changé de fonctionnement.
Ce qui vient de l'extérieur reste encore souvent rejeté avec dédain, voire agressivité si c'est une idée et pas du code.
En parallèle ce qui est fait par le coeur de ces contributeurs est intégré parfois sans réflexion publique ou réel échange.
Du coup le résultat est parfois bancal.
J'aime bien la devise
smart guys, smart mistakes
et elle s'applique très bien ici.Les contributeurs sont compétents, intelligents, et ont fait de nombreuses choses pour lesquelles on doit les remercier.
Mais ils ne sont que des gens et à fonctionner en semi-dictature élitiste, ils font des erreurs comme tout le monde.
Maintenant, je ne suis plus la liste interne depuis quelques temps, et il est donc possible que ça ait changé.
Je n'ai vu aucun commentaire public en ce sens cependant.
- On entend beaucoup parler de la professionnalisation de PHP actuellement, quel est ton avis sur le sujet ?
-
Je déteste ça.
Je me suis toujours battu contre ceux qui se sentaient obligés d'ajouter
professionnel
derrière PHP ou derrière leur titre.Qu'est ce que la professionnalisation ?
Au sens propre, c'est en vivre et se faire payer.
Ça a été un point qu'on a poussé et promu il y a longtemps, et peut être une des raisons d'être de l'AFUP à une époque, mais il n'y a plus rien à prouver de ce côté là maintenant.
Derrière ce terme, il y a surtout chez beaucoup de gens une échelle de valeur que je trouve détestable et très fausse.
C'est un refuge pour ceux qui ne s'attachent pas aux compétences et à la valeur technique.
La plupart des passionnés ont une valeur technique dix fois supérieure au développeur professionnel moyen.
C'est d'autant plus agaçant que les meilleures compétences et les meilleures réalisations, je les ai vu chez des gens hors contexte professionnel, qui jouent avec PHP parce qu'ils aiment ça et parce qu'ils sont passionnés.
Au niveau professionnel, les besoins sont étonnamment beaucoup plus basiques.
Je ne dis pas que ce qui est réalisé n'est pas critique avec des millions d'utilisateurs, mais il y a moins d'innovation et de technicité, simplement parce qu'on cible la rentabilité et que ça veut rarement dire faire des choses élégantes, complexes et de qualité.
Pour rappel, le langage le plus professionnel est par la force des choses celui qui peut être utilisé par des gens incompétents avec le moins de dégâts possible.
C'est dans cet esprit qu'en java on a un contrôle des types fort, des classes statiques, aucune surcharge d'opérateur, pas d'héritage multiple ou de mixin, etc.
Le milieu professionnel c’est (malheureusement) quelques experts avec des légions d’ouvriers du développements à qui on demande des exécutions au ras des pâquerettes.
Étonnamment, les gens utilisent le terme
professionnel
pour décrire exactement le contraire...Je ne suis même pas certain que ce terme puisse permettre de se valoriser pour une embauche et faire la différence avec ceux qui bidouillent un phpbb sans compétences : Le terme étant vide, je ne vois pas quelle valorisation on peut lui donner.
Dans le cadre d’un recrutement, quelqu’un qui insiste pour se qualifier de
professionnel
m’inspire même plutôt de la méfiance car je me demande ce qu’il tente de cacher.Si vous êtes compétent et passionné, vous n’avez pas besoin de ce cache-misère.
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.
- Le développement de prochaine version va-t-il dans le sens de cette professionnalisation ?
-
Après ce que je viens de dire, je ne l'espère pas, mais en fait, il y va un peu.
C'est ainsi qu'on a fait passé les interfaces, les contrôles statiques de type et ce genre de fonctionnalités avant les fonctions anonymes et les espaces de noms.
En gros, on a amélioré le côté
professionnel
avec des syntaxes qui apportent un meilleur contrôle sur les mauvais développements, mais qui n'apportent rien de plus en terme de possibilités.On se rapprochait de Java au lieu de se rapprocher de Python ou de développer un langage avec ses propres forces.
Mais on y va aussi en positif, car les frameworks se développent dans le bon sens et apportent des squelettes solides qui permettent de développer plus rapidement, sur une base commune.
Pour les entreprises, c'est une valeur ajoutée indéniable.
Commencer un développement PHP en entreprise sur autre chose que le framework zend, symfony ou les quelques rares autres est aujourd’hui une faute grave.
Je vois aussi arriver des choses du côté de l'industrialisation, même si je déteste également ce terme, avec une plate-forme d'intégration continue que Gabriele Santini met en place chez SQLI, des outils d'analyse, de contrôle qualité, et des documentations publiques bien mieux faites.
À une époque, les tutoriels et explications à propos de PHP disponibles sur Internet promouvaient tout ce qu'il ne fallait pas faire.
C’est aussi de moins en moins le cas actuellement.
C’est peut être plus sur cette industrialisation qu’on avance dans l’écosystème PHP.
Quand on compare PHP à Java ou C#/.Net, il lui manque de nombreux outils.
Rien que le débogueur est sous-utilisé,et parfois une plaie à installer.
Par contre, la remontée des erreurs des serveurs de productions, l’analyse des traces, le profilage, l’analyse statique de code, les normes de codage, et l’insertion de bibliothèques de code de manière non intrusives sont des choses qui avances sérieusement.
Maintenant, même sur le chapitre de l’industrialisation, je reste frileux.
Je suis personnellement beaucoup plus proche du côté maître artisan que des entreprises Ford du début du siècle précédent.
En conséquence, je suis plus attiré par les codes élégants et les passionnés que par la mise en oeuvre de chaînes de production avec des ouvriers du développements.
Je sais que c’est parfois utile, et que ça profite même à mes maîtres artisans, mais je ne peux m’empêcher d’y voir un risque de régression en technicité, en qualité, ou simplement d’y perdre le fun, la passion.
- Au vu de tes réponses précédentes, est-il possible de dire que tu crois en l'avenir du langage ?
-
Aie !
Au vu de mes réponses précédentes, on ne le dirait pas.
Cependant, j'y crois tout de même, car PHP a encore beaucoup d'avantages.
C'est le langage le plus simple à mettre en œuvre, pour lequel on trouve facilement des compétences, ainsi que le plus simple à héberger.
Avec tout ces atouts, ce serait dommage qu'il n’ait pas d’avenir.
Et malgré tout ce que j’ai pu dire de négatif, les dernières versions vont dans le bon sens et on voit des propositions et une roadmap qui amène enfin des nouveautés attendues.
La direction n'est pas forcément celle que j'aurai prise, mais il y a clairement un avenir, et un avenir qui est meilleur que la situation actuelle.
Finalement, c'est bien ça l'important non ?
Mais il va quand même falloir avancer sérieusement, sinon Ruby ou Python vont finir par prendre la place de PHP.
Ils corrigent jour après jour tout ce qu'ils avaient de moins bien que lui (hébergement, déploiement, framework web, bibliothèques web) et comme ils ont de très sérieux avantages sur tout le reste...
Si PHP fait évoluer son fonctionnement interne, j'ai une confiance importante sur ce qui peut en résulter.
Il faut également que les contributeurs acceptent de bousculer un peu le langage.
C'est en effet un pré-requis pour faire évoluer un langage de plus de 10 ans.
Maintenant j'ai aussi peut être trop tendance à vouloir tendre vers Python et Ruby, au lieu de laisser se dégager un langage différent, et à prendre directement Python et Ruby quand ils sont adaptés à mes besoins.
L'avenir de PHP vu par Éric Daspet
mercredi 1 septembre 2010. Lien permanent PHP X
Comme annoncé, c'est donc Éric Daspet qui clôture cette série d'interview, en nous faisant partagé sa vision de l'avenir de PHP.
Comme beaucoup de ceux que j'ai interviewé précédemment, j'ai fais la connaissance d'Éric via openweb, et au fil du temps et de nos échanges virtuels et réels, il est devenu pour moi une référence en terme de savoir-être et de savoir-faire, car il est extrêmement compétent techniquement, tout en aillant un soucis de l'Humain très prononcé.
Il me semblait donc logique que ce soit lui qui ait le mot de la fin.
Fil des commentaires de ce billet
Ajouter un rétrolien
URL de rétrolien : http://blog.mageekbox.net/?trackback/179
10 réactions
1 De Sébastien - 01/09/2010, 21:19
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 !
"Programming languages are like girlfiends : the new one is better becaure YOU are better."
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...
2 De Thomas - 01/09/2010, 23:01
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 ?
3 De ValCapri - 02/09/2010, 02:04
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.
Et puis comme tu le dis, si bien :
"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."
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.
4 De metagoto - 02/09/2010, 08:04
@Thomas: Ce "bon" langage est javascript.
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.
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.
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
5 De syndrael - 02/09/2010, 09:26
Etant donné tes compétences, si quelqu'un te sert de référence, je me prosterne sans poser de question..
!!
S.
6 De Ivan Enderlin - 02/09/2010, 09:36
Hey :-),
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.
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.
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 ?
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.
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.
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.
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.
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.
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.
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.
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.
Javascript est fun 5mn, mais NodeJS est fun un sacré moment (pour prendre un buzz-example ;-)).
Et oui, c'est comme la guitare ou la musique :-P
7 De NiKo - 02/09/2010, 09:53
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é.
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).
8 De Yacodo - 02/09/2010, 10:09
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.
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 ?
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.
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.
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.
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.
9 De Eric Daspet - 02/09/2010, 12:41
Je vais répondre à plein de gens d'un coup, ça va être long, désolé.
@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.
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.
@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".
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é.
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.
@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).
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.
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.
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
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.
10 De Jean-Marc Fontaine - 02/09/2010, 14:29
Merci Eric pour cette interview passionnante. Je partage une bonne partie de ton point de vue.
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.
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.
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.
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.