La religion chez les développeur(euse)s informatiques

Je ne vais pas te parler du petit Jésus, mais de technologie. Tous les développeurs sans exception sont religieux. Moi le premier et surtout toi. Cette religion te met en colère et te pousse vers de mauvais choix. Aujourd’hui je te parle d’amour et de violence.



Coup de foudre dans ton dev

Nous sommes en plein milieu de l’été 1999. J’ai décidé de passer une semaine entière à jouer à mon jeu vidéo préféré parce que je suis un énorme geek. Final Fantasy 8 me fait rêver et le monde entier doit être au courant. Je me jette alors sur le PC de ma mère et je décide de faire un site Internet. Le problème c’est qu’à ce moment-là je viens d’avoir 13 ans. Je suis encore plus con qu’aujourd’hui. J’ai aucune idée de ce que je fais. Malgré mon QI négatif, je finis par comprendre comment utiliser le HTML. Puis le CSS. Et enfin le Javascript. Sans le savoir, je m’autoforme à la base du développement web. La création et la mise en ligne de ce site va être pour moi un moment pivot qui va changer ma vie.



ff8


Je tombe en amour immédiat avec le développement et tous les langages que j’utilise à ce moment-là. J’insiste sur le mot amour. C’est un putain de coup de foudre cette affaire. Je ne touche plus à ma PlayStation pendant des semaines. Mon apprentissage me passionne. Faire mon site internet est bien plus intéressant que tous mes jeux réunis. Et surtout, je ne trouve absolument aucun problème à tout ce que j’utilise. Ces outils sont parfaits. Tu as vu ce que j’ai fait avec ? Incroyable.

L’année d’après la version 4 de PHP est release dans les Internets. Pour la première fois, mon site sur Final Fantasy 8 devient dynamique. Une base de données me permet de mettre à jour le site sans toucher au HTML. C’est fou. Ma lune de miel continue. Je n’ai plus aucun doute sur ce que je veux faire dans la vie. Mon culte envers toutes ces technologies grandit à mesure que j’y passe du temps. J’ai vraiment l’impression de devenir un Dieu là-dedans. Une profonde foi s’installe en moi. Et gare aux impies qui oseraient critiquer ma nouvelle religion.



Les croyants recevront un bel accueil

Je suis sûr que tu te reconnais d’une façon ou d’une autre dans mon histoire. Comme tous les développeurs, tu as une relation particulière avec ce métier. Une passion, une vocation, une évidence tu l’appelle comme tu veux. Tu as investi tellement de temps et d’effort dans ces technologies que tu finis par t’identifier. Comme une extension de toi-même. C’est impossible d’être complètement objectif quand tu es autant investi. On est des êtres humains. On veut adhérer à des idées et croire en des choses. Et pour les croyants la récompense est énorme. La puissance de productivité et de créativité que t’offre un langage maîtrisé est un formidable don. Un cercle vertueux s’installe. Plus tu y crois, plus tu deviens bon. Tu deviens une personne pieuse. Tu veux honorer ton souverain et il devient alors important d’évangéliser.



religion


Les communautés autour d’un langage ou une pratique viennent ré-enforcer ta foi. Tu rencontres tous ces gens en ligne ou lors de meet-up et autres conférences. Tu es galvanisé par autant d’adeptes. Et tous les fidèles ont le même discours. Ta sainte technologie est la solution à tous les problèmes. Même quand tu fais clairement rentrer un triangle dans un rond en défonçant les côtés. L’amour aveugle t’empêche d’avoir du recul. Et quand un hérétique se met à hurler des horreurs sur tes croyances, l’amour fait place à la violence.



L’amour et la violence

Nous sommes en septembre 2005 et ça fait pas mal d’années que je dev dans mon coin pour le fun. Je suis de religion PHP. PHP c’est la vie et celui qui dit le contraire je lui coupe la tête. J’arrive à ce moment-là à ma première année de BTS informatique. C’est la première fois qu’on va m’enseigner le dev de façon professionnelle. Et je tombe nez à nez avec pleins d’autres développeurs. Évidemment, je leur parle immédiatement de ma sainte religion. Et la réponse que j’ai est insoutenable. “PHP c’est de la merde ! Quand t’es un vrai développeur, tu codes en C#.” Et tout le monde à l’air d’accord.



violence


Je vois rouge. Dans une colère explosive, j’insulte violemment tous ces fanatiques du C#. C’est allez si loin que très vite l’établissement nous recadre chez le directeur. C’est un groupe de cinq personnes que je me mets à dos. Aucun mot ne sera échangé entre nous durant les deux années qui suivront. On ne discute pas avec le diable.

Fast forward je continue mes études en Angleterre puis en Espagne, je te raconterai ça un autre jour c’est trop long, et je rentre à Lyon fin 2009 pour mon premier stage. À ce moment-là dans ma tête je suis un Dieu du dev et je prêche jQuery et Symfony. Le problème c’est qu’au travail, la religion n’a pas sa place. Je me suis mis à produire des projets Symfony entiers là où un simple script bash avec un cron aurait suffit. Assez vite mon fanatisme pose de gros problèmes à mon premier job. Mon lead dev a décidé d’avoir une discussion avec moi qui allait mettre fin à ma vie de sectaire. Une discussion que tous les développeurs devraient avoir pour éviter de faire des bêtises.



Blasphémateur

Avant ça, il faut que je te parle de l’événement qui m’a inspiré cet article. Il y a presque deux mois de ça, j’ai publié cet article. J’aime NodeJS. J’aime tellement ça que c’est mon outil de travail depuis des années. Et du coup j’aime en parler. Et quand le créateur de NodeJS fait la liste des choses qu’il regrette avec NodeJS et nous parle de son futur projet, je suis obligé de t’en parler. Cet article va plaire à beaucoup de monde. Beaucoup de monde, mais pas Thomas.



religion


Thomas est un développeur qui aime NodeJS et son environnement. Il poste un article réponse à mon article. C’est Internet, donc j’ai l’habitude des critiques. Mais son article est d’une violence inouïe. Ça aurait été OK s’il se contentait de technique, mais là c’était personnel. J’ai jamais vu autant de violence dans une réponse. C’est si violent qu’il va s’autocensurer. En plus de ça on est sur Linkedin, on est pas chez mémé ! Tout le monde est censé être professionnel dans ce coin des Internets non ? Mais pourquoi tant de haine alors qu’il était d’accord avec une bonne partie de l’article ? En fouillant un peu je suis tombé sur un autre article de Thomas. Et dans cet article il se livre. Dans cet article, il parle d’amour.



religion


Et là, j’ai compris. Thomas est de religion NodeJS. Et à ses yeux, je suis un hérétique qu’il convient de brûler vif en place publique. Quand j’ai compris ça, je me suis revu des années en arrière défendre PHP comme si c’était ma mère. Passer la première barrière de choc, j’ai réalisé que sa violence était une mauvaise traduction de son amour pour NodeJS. Si tu lis ça Thomas sache que je t’aime et je t’estime. Sans rancune. Partage-nous ton expertise NodeJS dans des articles. Je suis sûr que je serais pas le seul à apprendre plein de choses techniquement grâce à toi. Et pour arrêter d’agresser les gens et mieux vivre ta passion, je t’invite à la lecture de la partie suivante.



Exorcisme

Retour à mon premier job. Mon lead dev me fait venir dans le café devant la boite et me fait un monologue qui va changer ma façon de voir les choses. Les langages sont des outils. Les langages ne sont pas ta famille. Je comprends ton attachement et ton besoin de les défendre mais c’est ridicule. Tu es un développeur et c’est de façon logique que tu dois choisir tes technologies.

Tu as devant toi une énorme boite à outils. Si tu utilises un tournevis pour casser un mur tu es un mauvais développeur. Ça va se voir tout de suite et ton entreprise va en payer le prix. Je m’en carre le cul que ce tournevis t’as aidé toute ta vie. Je m’en fous encore plus que t’as vu des gens casser des murs avec un tournevis avant. Oui l’outil parfait n’existe pas, mais c’est évident quand il faut aller voir ailleurs. Dans un milieu technique, les faits et les benchmarks sont de bien meilleurs conseils que ton ressenti ou tes sentiments. Et je t’en supplie met fin à tes pulsions qui vont seulement t’emmener vers des situations de conflits inutiles. Il est temps d’exorciser tes démons.



daemon stop


Combien de débats inutiles entre programmation-objet et programmation fonctionnelle ? Combien de projets voués à l’échec à cause d’un mauvais choix de technologie ? Combien de pseudo-guerres entre développeurs pour une histoire de langage ? Combien de développeurs qui refusent de voir les failles dans leurs technologies ? Religion, religion, religion. La plupart des développeurs vont vendre leur technologie, en crachant sur le reste, sans n’avoir jamais rien essayé d’autre. À part propager la haine et faire échouer des projets, ça sert à rien. La prochaine fois que tu veux défoncer un langage essaye de te retenir et de respecter les autres. Car l’amour pour un langage, c’est très bien quand c’est contrôlé.



Aimez-vous les uns les autres

C’est ta passion et ton amour pour ce métier qui a fait de toi ce que tu es aujourd’hui. Je dis pas que c’est mal tout ça. Mais tu dois prendre du recul. Il est super important d’analyser et d’accepter les faiblesses de ton langage. C’est même indispensable si tu veux en éviter les pièges. C’est indispensable si tu veux faire les bons choix et devenir un meilleur développeur. Si comme moi tu as été coupable de colère et de mauvais choix dans le passé, il est temps de faire ton travail de rédemption. Regarder droit dans les yeux les faiblesses de toutes ces technologies et utiliser ce savoir à ton avantage.

C’est exactement ce que j’ai fait avec NodeJS. Pareil quand j’ai posté cet article sur mon ancienne religion PHP. Je la descends en flèche avant de la défendre. Je me souviens très bien de tous les mails remplis de haine et/ou d’amour que j’ai reçus.





Ta religion n’est pas censée te contrôler. Tu dois être critique envers ta religion pour la contrôler. La critique est saine si elle est faite intelligemment. Je critique en particulier les gens que j’aime. Je les connais bien et si je les critique c’est parce que je veux leur bien. Je prends des pincettes et je me renseigne très fortement avant d’oser parler des gens que je ne connais pas bien. Car je les respecte et je veux être respecté. Appliquer cette façon de penser à la technologie est une bonne idée. Ça va renforcer ton expertise et éviter d’heurter les croyances des autres. Ils vont fortement apprécier que tu demandes avant de leur envoyer des horreurs. Peut-être même que du coup ils vont avoir envie de t’apprendre quelque chose de leur expertise à eux. Et à la fin de l’histoire, l’amour triomphe.



Épilogue

Au fur et mesure que le blog grandit j’ai l’impression que mes idées ont plus de résonance. Et si cet article peut t’aider à répandre de bonnes ondes, j’en serais honoré. Notre domaine en a bien besoin. Tu as toujours les commentaires en bas. Je suis curieux de savoir si tu as envie de me parler d’amour ou de violence.

Qui me parle ?

jesuisundev
Je suis un dev. En ce moment je suis Backend Développeur / DevOps à Ubisoft. Je suis passionné du dev et j'écris comme je parle. Je continue à te parler quotidiennement sur mon Twitter. Tu peux m'insulter à cette e-mail ou le faire directement dans les commentaires juste en dessous.

Commentaire(s)

  1. PhP, JS @#é~!&, Python > all ! // fin du troll

    Super article sinon, je me suis reconnu dans le début de l’introduction :). Je n’ai cependant pas pas vécu longtemps la phase religieuse, étant donné que j’ai commencé dev ActionScript et que notre dieu a rapidement été tué par Apple et tous les autres qui ne voyait pas Flash comme un standard et heureusement.

    Je pense qu’un bon dev est polythéiste, ça n’empêche pas de choisir le tournevis qu’on aime utilisé avec amour et passion, mais il faut voir les langage comme des outils, et c’est le contexte qui doit définir celui-ci. Switché sur plusieurs technos est un bon moyen de prendre de la distance avec cet état d’esprit.

    1. Je ne penses pas qu’un dev doive être polythéiste, il doit avoir ses convictions et ses préférences. Mais doit pouvoir s’ouvrir aux technologies autres que ses convictions.
      Être fidèle à sa technologie préférée, c’est être un spécialiste dans son domaine. Mais se ferme aux autres technos, c’est devenir “sectaire”.

  2. Super article

    Je tiens néanmoins à préciser ceci: je pense que les dev religieux sont généralement ceux qui ont appris une techno précise et se rendent compte qu’ils peuvent l’utiliser pour résoudre tous les problèmes. Ainsi, de manière instinctive ils sont prêts à tout pour le défendre et rabaisser les autres.

    Je dis ça parce que j’ai failli passé par là. Mais heureusement, j’aime bien lire les blogs de dev et c’est ce qui m’a littéralement exorcisé, hahahha!

    En effet, quand je me suis rendu compte à mes débuts que je ne comprenait pas bien le JS, j’ai découvert Python et je l’ai adoré. Quand je me suis rendu compte que je ne comprenais que dalle à Symfony, j’ai découvert Flask et je l’ai adulé!

    Aujourd’hui s’il est bien vrai que je suis plus python que d’autres langages, plus Flask et Odoo que d’autres framework, je suis fier d’être sorti de cette bulle religieuse et reconnaître que chaque techno a ses pour et ses contre. Et donc, si le besoin se présente, je peux bien bosser avec n’importe quel autre outil, l’essentiel étant d’apporter une solution à un problème!

    1. Hahahahaha! J’ai adoré ton article, hilarant dans ton style d’écriture. Je ne savais même pas que des gens se montaient la tête comme ça pour un langage. Comme tu le dis, ce ne sont que des outils et chacun a ses spécialités. Ça peut être compliqué d’apprendre un autre langage mais mieux vaut plein d’outils à disposition qu’un monolithe qui ne saurait faire que des triangles pour reprendre ton analogie.

  3. Quand j’ai lu le titre de article je me suis dis ça y est le mec a pété les plombs. Je m’y suis retrouvé mais j’ai surtout retrouvé mes collègues les plus vieux dedans qui pour certain ne jure que par un langage et ne s’ouvre pas au reste du monde. Merci pour cette article qui m’a fait rire (comme souvent sur ton blog). Longue vie et prospérité.

  4. Je me suis reconnu et je suis bien d’accord avec tes conclusions.

    Je suis totalement amoureux de Laravel mais j’essaie de rester ouvert, d’être curieux des autres technos, et SURTOUT, je prône la bienveillance entre développeurs (et entre être humains tout court, d’ailleurs).

  5. Ce coup de vieux…

    Ce site FF8 a été une référence pour moi, il y avait plus de ressources que sur certains gros sites spécialisés. C’est amusant de “connaître” enfin son auteur. Avec plusieurs années de retard, merci :).

    Pour retourner dans le sujet, j’ai l’impression de me lire. Ma religion est aussi le PHP et j’ai toujours autant de haine pour les autres technos. J’ai eu une aventure avec NodeJS, intéressante mais succinte, parce que je suis bloqué dans ma religion : le JS c’est le maaaaaaaaaaal.

    Pourtant, en milieu pro je travail aujourd’hui avec du jQuery, Java/Spring, Angular 2+. Mais je conserve mon amour pour le PHP et une haine profonde pour Java (parce que c’est PUTAIN DE VERBEUX). J’ai appris à accepter l’idée que le JS n’était plus le maaaaaaal absolu.

    Il est temps d’exorciser mes vieux démons moi aussi…

    Merci pour cette tranche de vie.

  6. En fait cet article ne parle pas de langages de programmation mais de voitures, piétons, vélos et trottinettes électriques. Tout me monde sait que les piétons ne traversent jamais la route sur le passage piéton, que les vélos grillent les feux rouge, que les trottinettes électriques bafouent le bon sens (en attendant de bafouer la loi) en roulant sur le trottoir et que les automobilistes ne font jamais attention aux motos quand ils doublent (ah j’avais oublié les motos), et que les motos ……

    En même temps si tout le monde s’aime, c’est plus très drôle.

    Le plus important est de se rendre compte quand on devient émotionnel pour pas partir en live, les gens qui garderont leur calme auront toujours raison.

  7. C’est amusant ces “évangélistes” des langages. Peut-être que c’est parce qu’ils ont peur que tout ce qu’ils ont appris s’effondre (= « ouin, php c’est nul donc j’ai appris et développé tout ça pour rien »), ou alors parfois ils se confortent dans des effets de mode, comme c’est le cas actuellement avec Rust par exemple, où parfois des tintins vont ouvrir des tickets sur Github dans des gros projets en écrivant « avez-vous considéré de tout refaire de zéro en Rust ? ». C’est tout aussi vrai avec les autres outils, comme les éditeurs de texte ou les systèmes d’exploitation. Qu’est-ce que j’ai pu être casse-noix avec mon Linux à l’époque… Depuis que je bosse, j’utilise plein d’outils différents, parfois je les choisis, parfois pas. Alors j’ai carrément des préférences. Mais dans tous les cas, je me suis bien rendu compte qu’aucun n’était parfait. Je crois que ce qui est important c’est avant tout de rester curieux, s’empâter avec des habitudes de vieux ça peut vite poser problème.

  8. Je n’aurais normalement pas commenté cet article, mais en lisant les autres commentaires, je pense que mon témoignage est également intéressant:
    alors que je me considère comme un passionné d’informatique, je ne me retrouve pas du tout de cette description.

    J’ai commencé à programmé vers 13 ans et j’étais vraiment accros. Mais je n’ai jamais considéré mon langage comme meilleur que les autres, et je n’ai jamais été choqué par les critiques.

    Par contre, c’est vrai que j’ai observé certains de ces comportements. Et la conséquence est que je me suis éloigné de ces groupes le plus rapidement possible. Pour moi, ces jeunes aficionados étaient simplement insupportables, même (surtout) quand c’était autour de mon langage favori. J’ai donc évité soigneusement d’être un membre actif de la moindre communauté. Et j’ai également évité les écoles de dev (j’ai fait un doctorat en physique, coder était mon principal hobby sur mon temps libre). Une conséquence intéressante est donc que les gens comme moi sont passé inaperçus.

    Les commentaires et l’article sous-entendent un peu qu’au final, c’est juste une conséquence normale de la nature humaine. Je ne pense pas que ça soit le cas. Je pense que petit à petit, c’est devenu la culture ambiante, excluant naturellement ceux qui n’aiment pas ce genre de comportement. Cela rejoint d’autres aspects typiquement associés (à tort ou à raison) aux passionnés d’informatique: l’aspect ado compétitif et gamin, l’aspect ambiance masculine, l’aspect méritocratie où on ne prend pas de pincette pour t’expliquer pourquoi t’as tort, …

    Bref, cet article est chouette et met le doigt sur quelque chose d’intéressant, mais, même si elle n’est pas explicité comme cela ici, j’aimerais bien que la conclusion ne soit pas: “vous savez, c’est comme ça, quand on est un passionné d’info, on passe par cette phase, après on grandit”. C’est faux que tout les passionnés d’info passent par cette phase, c’est faux qu’il s’agit d’une étape “normale” (elle est “logique”, mais elle peut facilement être évitée s’il y avait une culture qui ne favorise pas ces comportements), c’est faux que c’est typique de l’informatique (ce n’est pas parce que c’est de l’informatique, c’est avant tout parce que c’est un milieu où, par hasard, cette culture est devenue normale).

  9. Très bon article, bravo
    Je ne suis pas dev, mais ce que tu dis s’applique aux liGnuxiens (pas tous, évidemment) :
    J’utilise Windows pour ma “station” audio pro, ben rien n’y fait, pour certains je suis coupable de tout un tas de maux
    Des gens qui me disent “tu devrais passer à Linux”… attends, je… devrais? déjà, ça commence mal…
    Bin et toi, tu ne devrais pas dire Gnu&Linux pour commencer?
    Et que mon outils de travail soit offline 99.99999999% du temps, ça te dérange à combien de pourcent, monsieur l’inquisit… heu, conseilleurs?
    Que j’utilise (avec beaucoup de plaisir) différents BSD? Que j’ai testé (avec parfois beaucoup de plaisir) plusieurs liGnux? Que j’ai autre chose à faire que la même chose que toi? Que j’aime faire autre chose que toi?
    Je suis au courant pour les GAFAM, merci à toi, dont le noyau contient plusieurs centaines de firmware propriétaire (tu sais? les trucs occultes qui se lancent au démarrage, et dont la nsa connaît la moindre faille? -les mêmes que ton téléphone et ta télévision, tu vois ou pas?).
    Bon, j’arrête là, en fait ton article s’applique à beaucoup de domaines (sport, véhicule, personnage public… j’en oublie sûrement) 🙂
    Bonne continuation, et paix aux hommes de bonne volonté

  10. ps : il y a même des gens qui répètent mot pour mot ce que leur dieu Linus T. dit.
    Ils le singent, l’absolvent (avec j’imagine, un sourire bonhomme en disant “ah… c’est du Linus”) quand il est vulgaire, l’ensencent comme s’ils connaissaient son “niveau” en informatique, et en parlent comme si lui était leur ami…
    Religieux, en effets :/

  11. Une phrase remplie de sagesse d’un de mes premiers gourous/lead dev : “Attention, quand on a un marteau, tout ressemble à un clou!”.
    De l’importance de bien choisir ses outils en fonction de la tâche à accomplir.

  12. Haha excellent. Moi j’utilise un langage un peu part : le WLangage (WinDev, WebDev et WinDev Mobil). Et en plus, j’aime ça ! Venant de formation C/C++, j’ai eu quelques difficultés au début, mais une fois bien appréhendé, c’est vraiment un langage sympa, rapide et efficace SELON ce qu’il y a à faire. Oui je reste bien conscient qu’il n’est pas parfait et que pour faire certaines choses, le langage tout comme les EDIs ne conviendront pas. Mais vous ne pouvez même pas imaginer ce que j’entend parfois dans la communauté des développeurs quand je dit que je développe en WLangage. Ça va du simple “Je connais pas” à “pfff… c’est même pas un VRAI langage” pour les plus sympa. Les autres c’est plus du genre “C’est de la m***e !”. Ça ouvre de suite le dialogue, et ça montre le niveau intellectuel de l’interlocuteur (qui pourtant en tant que développeur ne devrait pas être si bas que ça – il me semble) à moins qu’en fait, il soit tout simplement d’une autre “religion”. J’avoue que je n’avais pas envisagé cette dernière hypothèse, mais maintenant que tu le dit : tout devient clair.
    Sinon je suis en train de me convertir doucement à Python, mais bien souvent je me dit que quand-même, pour moi, ça aurait été plus vite fait avec WinDev. Peut-être qu’avec une meilleure maîtrise de Python ça changera.
    Alors à la lecture de cette article, je me suis dit : “Ah oui, ma religion c’est le WLangage” mais je respecte tous les autres choix. J’ai beaucoup aimé l’analogie religieuse.

    Allez en paix
    @+ et bon dev

    P.S. : si en lisant ce commentaire tu te dit que le Wlangage c’est de la m***e, merci de n’exposer ton point de vu qu’avec des éléments constructifs.

  13. Bonjour,
    Félicitations pour cet article qui traite d’un sujet tellement répandu.
    C’est avec beaucoup de sérieux que je l’ai lu, tu es encore jeune (sisi) mais tu as un sacré recul, ton analyse est fort pertinente.
    Bel article, ce sujet devrait être abordé en début de formation informatique.

  14. commentaire d’un sysadmin …
    si ça fait le boulot, 80% de la mission est accomplie. mais si tu me colles des chiées de dépendances foireuses , tu me fais un probleme pour dans 5 ans, quand le projet tout nouveau tout beau deviendra gentiment legacy …

    n’oublie pas ça, gentil dev. calcule ta dette !!

  15. Merci pour ce très bon article, que ça soit de manière générale ou pour le développement en particulier, il est très important de prendre du recul. La haine est pour moi toujours une question de jalousie ou d’ignorance.
    Étant développeur iOS, je suis souvent sujet à des réflexions des développeurs Android qui trashent littéralement sur Apple mais je n’en profite pas pour faire de même sur Android et Google, au contraire j’ai testé et j’ai trouvé Kotlin très sympa mais je préfère Swift. Je pense qu’il est très important de s’intéresser aux autres technos.

    D’ailleurs ton article sur PHP m’a permis de voir les choses autrement sur ce langage.

    Continue comme ça, j’adore lire tes articles 🙂

T'en penses quoi ?

Your email address will not be published. Required fields are marked *