Et j'ai aimé coder

Je n'ai jamais trop aimé coder. Résoudre des problèmes, si possible en trouvant des solutions élégantes, oui. Mais coder, bof, sans plus. L'écriture du code n'a toujours été qu'un moyen pour atteindre un objectif donné.

Il y a un peu plus d'un an, j'ai décidé que je voulais apprendre Python et arrêter de faire des sites web avec PHP. Ça m'est venu après avoir écrit quelques plugins pour Trac ; je voulais en savoir plus, je voulais faire mieux.

Je ne vais pas vous entretenir à propos des mérites comparés de l'un ou l'autre de ces langages. Ça n'aurait pas d'autre intérêt que lancer un immense troll. J'ai plutôt envie de raconter comment on peut changer certaines habitudes et les bénéfices que l'on en tire.

Changer, mais pourquoi ?

Quand on leur parle Python ou Ruby, la question qui revient le plus souvent parmi les développeurs web n'ayant jamais fait rien d'autre que du PHP est : mais pourquoi changer des habitudes qui fonctionnent ? Cette réponse vous l'avez sans doute déjà entendu dans bien d'autres contextes.

Changer est source d'anxiété. Nous avons nos habitudes bien ancrées et il est bien difficile de s'en défaire. Et puis, changer pour changer n'est pas forcément une bonne idée. Alors que faire ? Stagner ?

Stagner rend malheureux

Stagner est une option qui est confortable et le devient de plus en plus au fil du temps. J'emploie à dessein le terme "stagner" alors qu'il n'est pas approprié dans bien des cas. Se spécialiser dans une discipline demande du temps et il serait injuste de dire qu'il s'agit là de stagnation.

La formation traditionnelle d'un chef sushi prend 7 ans et il se passe une longue période où il ne fait que du riz. Stagne t-il pour autant ? Non, il apprend à faire le meilleur riz possible.

On stagne quand on cesse d'apprendre et quand on cesse de s'amuser.

Je ne m'amusais plus avec PHP depuis bien longtemps. Faire vivre la communauté Dotclear était super (surtout la partie résurrection ;) mais j'allais à reculons dès qu'il fallait coder un peu. Je stagnais et ce n'était pas agréable.

Stagner rend malheureux ou du moins retire le plaisir du travail intellectuel.

De l'inspiration

Apprendre un nouveau langage est une source d'inspiration immense. Vous devrez apprendre une nouvelle grammaire, une syntaxe et parfois même à devenir zen.

Il se passe rarement une journée sans que j'aie besoin de regarder un détail dans les sources de Django. La documentation est très bien faite, ce n'est pas la question, mais les sources éclairent définitivement ce qui pouvait rester encore un peu obscur. Souvent, cet exercice permet de découvrir certains façons de résoudre un problème auquel on aurait pas songé. C'est inspirant.

Apprendre rend heureux. C'est un chemin difficile mais gratifiant quand on obtient des résultats. Et puisqu'il est un peu question de Python, c'est là un langage avec lequel on obtient des résultats très rapidement.

Du fun, du fun, du fun

Si on écrivait un zen pour chaque langage, la première règle devrait toujours être "amusez vous". Il n'y a rien de plus fatiguant et laborieux que travailler avec un outil rébarbatif. Peu importe l'outil ou le langage, si vous vous amusez, vous accepterez les lacunes et les problèmes. Et quand le fun disparait, changez de langage, explorez de nouveaux chemins.

Me concernant, je m'amuse réellement en faisant du Python, c'est même la première fois qu'un langage tient à ce point sa promesse ludique. Pour d'autres ça sera peut-être autre chose ; Ruby, Java, Cobol, Brainfuck...

Je crois avoir oublié de faire l'éloge de Python comme il se doit, alors voilà :

Just a few years ago I decided that I needed to learn Python. I don't remember the reason. I don't even know that there was a reason. Python was there, and that was enough.

It didn't take long to learn – Python isn't a difficult language – but for just that little bit of learning I got so much power, well – I don't have to explain it to you. You understand. It's a bit like crack, Python is. Once you've had that first hit, you're never quite the same again.

[Mark Pesce, How Not To Be Seen]

Et pour mes chers lecteurs qui continuent de gré ou de force à faire du PHP, n'oubliez pas que : Unicode c'est vraiment trop compliqué, allons plutôt faire du shopping.

Comments

Gilles 7 years, 3 months ago

Et j'ai aimé ce billet.

Hervé 7 years, 3 months ago

Ton billet a fini de me convaincre, je me retrouve beaucoup dans tes constatations sur Php, je ne m'amuse plus

Phollow 7 years, 3 months ago

Hello,

Billet sympa, je me retrouve un peu.. Je commençais un peu à m'ennuyer avec PHP alors je me suis tourné vers des designs pattern différent. Du style factories, ou MVC avec PHP et c'est déjà un peu plus rigolo.

Ensuite j'ai commencé à apprendre Ruby, tout d'abord du ruby pur pour faire des scripts sous Unix, puis Ruby on Rails 3 :)

Aurélien 7 years, 3 months ago

Billet très rafraichissant.

Se reposer sur ses acquis, ses lauriers, etc c'est la solution de facilité. On se repose aussi parfois sur un travail, bien payé, facile, près de sa maison...

On en finit par perdre ou oublier ce qui nous passionnait à nos débuts.

Et perdre sa passion, c'est certainement perdre sa créativité, sa motivation et à long terme sa joie de vivre.

Bon Fun !

A noter que le passage de Ruby/python à PHP peut très bien procurer le même effet. Cela n'a rien à voir avec les clivages des extrémistes d'un langage donné.

Bastien 7 years, 3 months ago

Il m'est arrivé la même chose l'an passé, je me suis mis à Python.

Tu fais cependant l'éloge du changement, mais je pense que si on passe de PHP à Python, c'est peut-être pas le changement le plus fun qui existe ;)

Camping 7 years, 3 months ago

Effectivement les design patern tels que MVC rompent la monotonie de php et ouvrent de nouvelles perspectives. Couplé avec la puissance d'Ajax et certains framework, c'est comme cela que j'ai "trouvé une seconde jeunesse" tout en restant au max SEO friendly. Pas toujours simple de garder la foi, mais avant de faire le tour de PHP, d'en maitriser toutes les subtilités ainsi que des langages de bas niveau sous jacents, faut se lever de bonne heure !

C'était une tranche soutient à php, en fait pour dire qu'on peut changer aussi sa façon de travailler et continuer à évoluer sans pour autant changer de language.

No' 7 years, 3 months ago

En fait, cette envie / ce besoin de changement est absolument et totalement naturel. C'est ton cerveau qui veut ça, en fait. Je recommande d'ailleurs la lecture de l'excellent "Your brain, the missing Manual", paru chez O'Reilly il y a quelques années, qui explique très clairement le fonctionnement du cerveau. C'est un organe qui adore les challenges, qui n'a qu'une envie : s'exercer à de nouvelles choses, apprendre...

Quelqu'un qui ferait des sudoku ou des mots croisés à longueur de temps arriverait à concevoir des stratégies, des "motifs" qui lui permettent de résoudre le problème de plus en plus vite et de plus en plus facilement. Une fois ces "circuits" branchés, le cerveau ne prend plus de plaisir : il ne fait qu'appliquer les mêmes recettes et il se morfond dans la routine. Plus besoin de construire.

C'est exactement pour cette raison que le cerveau d'Olivier lui envoyait des signaux : "je me sclérose, là, allez, hop, j'te colle le sentiment d'ennui tu vas voir ce que tu vas voir".

Et en basculant à Python, Olivier a fait plaisir à ce cerveau qui le lui a rendu en envoyant des signaux de "fun fun fun".

Comme souligné plus haut, ça n'a pas forcément à voir avec le langage ou la méthode. Ça a à voir avec le fait qu'on ouvre de nouveaux horizons à un cerveau qui s'ennuyait. Et si en plus on arrive à prendre du plaisir en construisant des choses, en réussissant, en résolvant des problèmes qu'on aurait pu penser insolubles avec les anciennes méthodes, c'est tout bénef.

Mais cette envie de changement n'est pas universelle. Je suis souvent consterné de voir des programmeurs résister de toutes leurs forces quand il s'agit d'une technologie qui les ferait dévier de leur routine quotidienne. On peut être victime du poncif : "Ça marche, pourquoi changer ?".

Ou il y a encore le : "J'ai passé dix ans à acquérir une expertise dans un domaine, je vais pas tout jeter pour allez vers un univers dans lequel j'ai tout à réapprendre". Il est vrai qu'on peut aussi opposer une forme de "raison économique" : le temps d'apprentissage des nouveaux outils est une pilule difficile à faire avaler.

Il y a tout un tas de raison pour freiner des quatre fers...

Et pourtant... il y a peu d'univers comme celui de la programmation. Nous sommes dans un métier dans lequel les technologies apparaissent et disparaissent en une génération à peine (qui fait encore du Fortran ?), un domaine dans lequel tout va vite, dans lequel il y a toujours de nouvelles choses à explorer, à apprendre...

Christophe BENOIT 7 years, 3 months ago

Apprendre un nouveau langage c'est comme essayer de nouveaux pinceaux. Au début c'est pas facile, ça bave et ça fait des ratures et puis après on s'amuse et on apprécie vraiment. Et avec le temps, on choisit la feuille et le pinceau le plus approprié pour le tableau que l'on souhaite faire.

nax 7 years, 3 months ago

Moi je fait du php depuis des années (enfin je fait, je code quelques trucs par an) mais je continue de m'amuser et de découvrir des choses. Mais sinon le langage qui m'a le plus amusé et que j'ai pris le plus de plaisir à découvrir et l'OCaml. Ce langage change complètement les habitudes et la réalisation d'algorithme est vraiment réjouissante. Il y a une vraie esthétique de la programmation que l'on ne retrouve pas dans d'autres langages.

Olivier 7 years, 3 months ago

J'ai bien aimé ton paragraphe d'introduction, je me reconnais assez :

"Je n'ai jamais trop aimé coder. Résoudre des problèmes, si possible en trouvant des solutions élégantes, oui. Mais coder, bof, sans plus. L'écriture du code n'a toujours été qu'un moyen pour atteindre un objectif donné."

Apprendre un autre langage, c'est assez important je trouve aussi, ne serait-ce par curiosité et ouvrir ses Cakra à d'autres voies ou façon de faire afin de s'amuser effectivement mais aussi dans un soucis d'amélioration personnelle.

Python, je n'ai jamais vraiment accroché (la syntaxe me déplait), Ruby, en revanche m'a paru assez intéressant, très expressif et intuitif.

Vous allez former un club Django avec David ;)

foxmask 7 years, 2 months ago

Marrant comme billet, l'intro et la conclusion se rejoignent :D