- Peux-tu te présenter en quelques mots ?
-
En 1996, avant même d'avoir une connexion à Internet, j'ai fait mes premières pages HTML.
J'ai trouvé ça génial et j'ai fini par en faire mon métier.
Parallèlement à mon travail, j'ai participé à de nombreux projets gravitant autour du libre et des standards du web ; j'ai participé à la fondation de l'APINC, d'OpenWeb et de Mozilla Europe.
Un jour il m'est venu l'idée de diffuser mon outil de blog et Dotclear est né.
Aujourd'hui, j'essaie de m'impliquer du mieux que je peux dans la communauté francophone Django.
C'est très agréable et plein de gens biens.
- Quand as-tu découvert PHP ?
-
En 2000, pour mon premier boulot. Je m'occupais, avec d'autres collègues, d'un site de commerce électronique assez conséquent.
On bossait sur une base de données Oracle, et J'ai appris énormément de choses à cette époque.
- À tes débuts, qu'est ce qui t'as séduit dans le langage ?
-
La courbe d'apprentissage, car on pouvait faire des choses très rapidement sans trop se compliquer l'existence.
Et la documentation bien sûr, puisque PHP disposait et dispose toujours d'une des meilleures documentation pour un langage de programmation.
Ça permet de vite trouver une réponse à un problème et ne pas rester coincé trop longtemps.
- Et au fil de ton expérience, qu'est ce qui t'as le plus rebuté ?
-
J'ai commencé à atteindre des limites en diffusant Dotclear.
Maintenir un outil qui doit fonctionner sur le plus grand nombre de configurations possibles est complètement différent d'un job où tu maîtrises la configuration de ton serveur.
Je me suis retrouvé devant des problèmes bien agaçants à cause de la directive
register_globals
, desmagic quotes
et des différentes versions de PHP qui introduisent toujours des régressions.C'est usant et ça grignote le temps qu'on voudrait consacrer aux nouvelles fonctionnalités.
Il y a aussi les bugs magiques.
Tous les développeurs qui ont fait du PHP en ont un sur leur tableau de chasse.
Le mien, c'était que
'inf' == 'inf'
renvoyait faux...Et puis, il y a ce côté brouillon du langage.
Par exemple, quand PHP 5 est sorti, j'étais enthousiaste à l'idée d'avoir enfin des exceptions.
Et puis j'ai déchanté en voyant que les erreurs de la plupart des fonctions de PHP n'étaient pas devenues des exceptions.
Ça t'oblige à gérer des cas particuliers dans tous les sens et c'est vraiment fatiguant.
Je ne parle même pas de l'absence totale de nomenclature pour nommer les fonctions.
- Tu n'as jamais eu envie de t'investir dans le développement du langage pour influencer son évolution dans ton sens ?
-
Je n'y ai jamais vraiment pensé et je n'ai jamais appris le C.
En plus, je ne suis que développeur web.
J'aurais pu participer d'autres façons mais je n'ai jamais vraiment pris le temps.
- Utilises-tu encore PHP actuellement ?
-
Non, je n'ai plus écrit une ligne de PHP depuis avril 2009.
En voyant les annonces de PHP 5.3, j'ai eu envie de passer à autre chose.
Certains choix, et les régressions associées, ne me convenaient pas.
J'ai eu la chance de pouvoir commencer un projet en choisissant l'outil et j'ai décidé de le faire en Django, un framework écrit en Python.
- Beaucoup considére que PHP 5.3 va dans le
bon sens
, qu'est ce qui t'as gêné avec cette version ? -
On peut déjà évoquer la syntaxe des espaces de nom.
Je me souviens aussi avoir lu une présentation du format d'archive.
Ça a été un peu le signal.
Pourquoi ne pas avoir choisi zip, comme Java (jar), Mozilla (xpi) ou Python (egg) ?
Je trouve aussi très contradictoire de dire qu'un langage qui implémente l'instruction
goto
va dans le bon sens.À moins qu'on trouve qu'encourager les mauvaises pratiques constitue un progrès...
Plus globalement, aller dans le
bon sens
aurait été de virer les boulets commeregister_globals
, lesafe mode
ou, le pire de tous,open_basedir
.Je considère ce dernier, avec le safe mode, comme le pire, car il donne une fausse impression de sécurité.
Il y a un nombre considérables d'hébergeurs qui pensent qu'
open_basedir
est suffisant pour assurer la sécurité de leurs utilisateurs.PHP 5.3 aurait mérité d'être un nettoyage en profondeur de ces comportements, plutôt qu'un empilement de fonctionnalités au design douteux.
- Pourquoi être passé à Python ?
-
Mon premier contact avec Python remonte à 2004, quand j'ai installé Trac pour la première fois.
Je me suis rapidement trouvé à faire des extensions et des macros.
Je trouvais ça assez marrant.
En 2009, j'habitais à Bruxelles et un ami est venu le temps du FOSDEM.
On a un peu discuté de Django et l'idée a continué à faire son chemin.
Python est un langage de programmation parfaitement cohérent et bien pensé.
Il dispose d'une syntaxe super simple et lisible, ce qui signifie que comprendre le code de quelqu'un d'autre ne demande pas d'efforts surnaturels.
Les erreurs ne sont que des exceptions.
Et, le plus important à mes yeux, la bibliothèque standard est immense.
J'ai passé des années à refaire du code que PHP n'intègre qu'en module pas forcément installé chez tous les hébergeurs.
J'ai même du refaire des classes pour gérer les fichiers zip !
Quand tu apprends ton métier, c'est assez amusant de refaire des classes pour faire proprement du HTTP, envoyer et lire des mails, faire du NNTP, etc.
Par la suite, on aimerait juste pouvoir faire son boulot.
Quand tu découvres Python, tu trouves un client et un serveur HTTP, un parseur de mail, un ensemble complet de gestion des processus et des threads, etc.
Et ce qu'on ne trouve pas par défaut, on le trouvera sur PyPI, dont la qualité et la facilité d'utilisation dépasse largement ce qui est fait sur PEAR ou PECL.
Point extrêmement agréable : à quelques détails près, Python installe toute sa librairie standard par défaut.
Il n'y pas la tonne d'options de compilation de PHP qui font qu'il existe quasiment une version par serveur.
Avec Python, tu t'intéresses au numéro de version et c'est à peu près tout.
Enfin, la fameuse bibliothèque standard est, en grande partie, écrite en ... Python.
Un jour que j'étais coincé en écrivant un petit serveur, j'ai simplement ouvert le code de
SocketServer
pour comprendre comment résoudre mon problème.En fait, les développeurs PHP devraient au moins apprendre à lire Python pour avoir des bases d'inspiration quand ils doivent refaire ce que le langage n'a pas jugé bon de leur fournir ;).
- Y'aurait-il quelque chose qui pourrait te faire revenir à PHP ?
-
Cette question est étrange.
Un langage n'est qu'un outil.
J'essaie toujours d'utiliser l'outil le plus pratique pour une tâche donnée.
Si un jour PHP se révèle le choix le plus pertinent, je l'utiliserai.
Si c'est pour faire du web, il va falloir que les améliorations soient vraiment significatives.
- Aucun regret d'avoir mis au panier, en quelque sorte, dix ans d'expérience PHP ?
-
Aucun car je ne vois pas les choses de cette manière.
Je n'ai pas mis au panier mon expérience de développement web, ni la somme de connaissances acquise.
Mon métier a toujours été le web, pas PHP ou Python.
Quand on fait du web, le langage et éventuellement, le framework utilisés sur le serveur ont leur importance mais c'est loin d'être l'essentiel.
On ne fait pas du web si on ne connaît pas HTTP, si on n'a pas assimilé quelques RFC importantes comme SMTP ou encore si on ne sait pas faire un minimum d'administration système.
Je n'ai pas perdu cette expérience et elle m'a été très utile quand j'ai choisi de changer mes outils.
- Es-tu optimiste quant à l'avenir de PHP ?
-
Malgré tout ce que je viens d'écrire je pense quand même que PHP n'est pas un mauvais outil.
Il fait son job, plus ou moins bien, mais il le fait.
Maintenant, dans les interviews que tu as publiés, je lis une désaffection croissante vis à vis de PHP.
Qu'elle vienne de développeurs tous plus brillants les uns que les autres est, à mon sens, un signe assez clair.
PHP a évidemment un avenir, ne serait-ce que dans la maintenance des sites existants.
Ceux qui en ont fait leur métier vont pouvoir continuer encore pas mal d'années à avoir des clients, c'est certain.
Je ne sais pas s'ils vont aimer ce qu'ils font mais au moins ils pourront payer leur loyer.
Maintenant, tous ceux qui ont envie d'un peu plus qu'un job alimentaire et qui ont besoin de trouver un intérêt dans la manière de faire leur boulot se tournent vers d'autres options telles que Python ou Ruby.
PHP ne va pas mourir demain mais est devenu un choix parmi des alternatives crédibles dans tous les langages et sur toutes les plate-formes.
Bien plus qu'il y a dix ans, on a aujourd'hui des options viables pour répondre à des besoins précis.
C'est quand même génial, non ?
switch (true) case 'Olivier Meunier': $mageekblog->interview(); break;
lundi 13 septembre 2010. Lien permanent PHP X
Comme précédemment annoncé, voici la première interview d'une série sur les switchers
.
Tout comme il y a des personnes qui ont abandonné le PC pour le Mac, il y a en effet des développeurs qui ont abandonné PHP pour un autre langage.
Est-ce un effet de mode ?
PHP est-il le problème ?
Les outsiders sont-ils meilleurs ?
Il m'a paru intéressant de tenter d'avoir des réponses honnêtes à ces questions, sans tomber dans le troll et les affirmations gratuites.
J'ai donc posé mes questions à une série de développeurs qui ont franchis le pas, et c'est donc Olivier Meunier qui ouvre le bal.
Je le connais depuis longtemps, vu qu'il est était l'un des développeurs incontournables de la communauté PHP française, et que nous avons une vision des choses similaires.
Nous sommes entré en contact pour la première fois en 2004 ou 2005, le jour ou je lui ai proposé un patch qui bouchait une faille de sécurité relativement importante de Dotclear, et depuis, même si nous n'avons plus été en contact direct jusqu'à récemment, j'ai suivis son parcours.
Pour dire la vérité, je lui avais proposé de l'interviewer dans le cadre de ma série L'avenir de PHP vu par ...
, mais il a eu l'honnêteté de me répondre qu'il ne se sentait plus concerné par PHP, et qu'il était peut être plus intéressant de l'interroger sur ce désintérêt qu'au sujet de l'avenir du langage.
Il est donc à l'origine de cette nouvelle série, et je l'en remercie, tout comme je le remercie d'avoir répondu à mes questions.
Fil des commentaires de ce billet
Ajouter un rétrolien
URL de rétrolien : http://blog.mageekbox.net/?trackback/185
17 réactions
1 De NiKo - 13/09/2010, 14:15
Perfect. Je peux faire un copier-coller et t'envoyer la même, Fred ?
2 De mageekguy - 13/09/2010, 14:18
@NiKo : Pour cette série, tu as le droit de reprendre les arguments des autres, les questions n'étant pas communes à tous, et adaptées en fonction des réponses que je reçois, ça n'est pas un problème, au contraire, même, si cela permet d'élargir le débat.
En fonction de ce que tu répondras à ma première série, les questions suivantes seront potentiellement différentes de celles que j'ai posé à Olivier.
3 De Yacodo - 13/09/2010, 16:39
Apprenant Python en ce moment, il est vrai que PHP fait brouillon à côté. La syntaxe et la cohérence reste tout de même vachement plus intuitive, mais cela ne nous empêche pas de développer aussi simplement qu'en PHP.
Pour les modules en natifs, je pense que la compilation personnalisé n'est pas non plus une mauvaise idée si nous n'avons pas besoin d'un module en PHP, on le vire, ça permet d'être un peu plus rapide et la performance côté web se ressentira forcement un jour.
Python a sa philosophie "ZEN" tandis que PHP se contente de fonctionner (Je n'ai pas trouvé de page "Yoga"...) et c'est bien dommage...
4 De Pierre - 14/09/2010, 03:29
Super interview, qui me fait découvrir ce blog par la même occasion !
Une question à Olivier : Django est-il le premier framework que tu aies découvert sous Python ? As-tu essayé d'autres frameworks ? Si oui, pourquoi préfères-tu Django ?
(ça sort un peu du cadre de cette interview, mais je suis curieux).
Merci !
5 De Hervé - 14/09/2010, 08:30
Super interview, merci
6 De Thierry - 14/09/2010, 10:31
Niveau performance, ça donne quoi entre PHP et Python ?
7 De Olivier - 14/09/2010, 12:02
Pierre, Django est pour l'instant le seul framework avec lequel j'ai bossé. J'en avais évalué rapidement quelques autres. Les raisons du rejet des autres tenait souvent à l'obligation de passer par un framework JS particulier.
8 De Gilles Lenfant - 14/09/2010, 14:31
@Olivier : A ma connaissance, seul Turbogears 2 et Plone "imposent" - ou plutôt privilégient - jQuery, encore qu'il soit possible d'utiliser autre chose, mais avec plus ou moins de douleur. Les autres frameworks Web en Python laissent les développeurs utiliser la lib Javascript de son choix, ou aucune.
Il faut par contre admettre que Django est le framework Python le plus facile à aborder pour un débutant. Surtout grâce à l'excellente qualité de sa doc.
9 De ccomb - 14/09/2010, 14:44
@Thierry : http://shootout.alioth.debian.org/u...
10 De ronan - 14/09/2010, 21:30
Merci pour ce nouveau cycle d'interviews, qui semblent aussi constructif et intéressant que le précédent.
Etant également un peu "usé" par php et ne trouvant plus le plaisir que j'avais il y a quelques temps à travailler avec, les langages comme tels Python et Ruby ainsi que les frameworks construits autour d'eux m'ont décidé à m'investir dans un autre langage aux coté de php.
Reste que dans une perspective sur le long terme, il est plutôt difficile de faire un choix. Django propose une manière d'aborder le développement vraiment très souple et intéressante, bien que me sente plus d'affinités avec Ruby, mais pour autant préférer Django à Rail au niveau de la "philosophie". D'autant plus que Django semble trouver beaucoup plus d'écho en France que Rails, ce qui d'un point de vue professionnel est loin d'être négligeable.
Bref, choix cornélien, mais choix qui semble à faire (s'impose?) d'un point de vue professionnel et personnel pour les années à venir. du moins je pense...
11 De Aurélien - 15/09/2010, 07:05
Je travaille sur TurboGears2 au boulot, et il ne nous impose pas jQuery. En fait, nous on utilise Mootools, et ça ne pose aucun problème.
A mon avis, Django et TurboGears sont tous les deux de très bons frameworks. Pour Plone, le ticket d'entrée est un peu plus élevé, à cause de Zope. Je n'ai pas essayé les autres.
12 De bohwaz - 15/09/2010, 16:02
"Il y a un nombre considérables d'hébergeurs qui pensent qu'open_basedir est suffisant pour assurer la sécurité de leurs utilisateurs."
J'aimerais plus de détails sur le pourquoi du comment, c'est pas très précis là.
Sur le fond de Python c'est mieux que PHP, dans un contexte de forte charge il est plus intéressant de ne pas se baser sur des composants comme les libs python qui peuvent être très mal foutues, du coup PHP va plus forcer le développeur en général à inventer des solutions par lui-même, qui seront plus adaptées à son usage (normalement).
Sinon, pourquoi ne pas passer à un langage qui soit un peu plus indépendant ? Genre haXe, qui permet de produire du PHP, du Flash, du JS, du C++, etc.
13 De Olivier - 15/09/2010, 23:36
Écrire ses propres libs au lieu d'utiliser des composants qui ont eu le temps d'être éprouvés par plein d'utilisateurs ? oui oui....
Quant à open_basedir, je te laisse regarder sur google
14 De bohwaz - 17/09/2010, 01:57
Eprouvés != Efficaces (hélas).
Sinon PhpBB est éprouvé par plein d'utilisateurs ça l'empêche pas d'être de la merde, tout comme des tas de libs python...
Pour open_basedir, non rien à part les failles qui peuvent survenir des modules tiers qui oublient de passer par open_basedir, ou les gens qui comprennent pas comment ça marche.
15 De black_watch - 17/09/2010, 15:30
@bohwaz des exemples de libs python merdiques ?
16 De franek - 22/09/2010, 13:27
Bonjour,
Avant dernier paragraphe de l'intro, une petite faute de frappe : "qu'il été peut être plus" à remplacer par "qu'il était peut être plus ".
Merci pour les interviews.
17 De mageekguy - 22/09/2010, 20:07
@franek : Merci.