Dans le monde du développement logiciel, peu de décisions semblent a priori aussi techniques – et donc théoriquement rationnelles – que le choix d’un langage de programmation : il est censé s’agir de comparer les performances, l’évolutivité, les outils ou la maintenabilité. Mais en réalité, cette décision est tout sauf objective.
Steve Francia, un ingénieur avec des décennies d'expérience dans des entreprises comme Google et MongoDB, a été témoin de la façon dont la subjectivité de ce type de choix peut finir par coûter des millions de dollars, ralentir l'innovation et, dans certains cas, faire sombrer des entreprises entières.
Sa conclusion est forte : en fin de compte, les décisions concernant les langues ne sont pas prises sur la base de critères techniques, elles sont basées sur l’identité. Un peu comme les équipes de foot ou la politique…
Quand changer de langue coûte cher à une entreprise
Francia raconte une expérience qu'elle a vécue au début de sa carrière, dans une startup appelée Tackle. Après une soudaine promotion, il s'est retrouvé à diriger une équipe développant avec PHP. Tout se passait bien, jusqu'à ce qu'un nouveau CTO, qui était un leader de la communauté Perl, décide de réécrire l'intégralité du système dans ce langage.
La décision a été justifiée par une analyse technique qui, rétrospectivement, dit Francia, semblait plus une excuse qu'une véritable évaluation.
Le résultat a été dévastateur : la productivité a chuté, l'équipe a dû perdre du temps à apprendre une nouvelle langue, les dépenses mensuelles ont doublé et l'entreprise a perdu son opportunité sur le marché. Tacklequi était un réseau social universitaire prometteur, est mort avant de pouvoir rivaliser, tandis que Facebook – par coïncidence, également construit en PHP à l'époque – a décollé et s'est développé.
La question qui a taraudé la France pendant des années était la suivante : comment un dirigeant aussi expérimenté a-t-il pu prendre une décision aussi coûteuse ?
La réponse est venue bien plus tard : ce n’était pas une décision technique, c’était une décision identitaire. Le CTO ne souhaitait pas développer la meilleure plateforme possible ; Je voulais être « un CTO Perl ». La réécriture n’était pas une stratégie technologique, mais le prix à payer pour maintenir une identité professionnelle.
Le modèle qui se répète partout
Des décennies plus tard, la France a observé à maintes reprises le même phénomène. Chez Google, chez MongoDB, dans des startups et de grandes entreprises. Des équipes entières ont débattu avec passion sur les langages (C++, Java, Go, Python, Rust), mais les arguments techniques n'étaient que « pour le spectacle ».
Dans une affaire récente, un vice-président de l'ingénierie a proposé de migrer un projet de 50 millions de dollars vers Rust. Leur présentation a mis en évidence les réels avantages du langage, mais curieusement n'a pas envisagé des alternatives évidentes telles que Go, qui surpassait Rust dans plusieurs des critères que l'équipe elle-même avait établis.
Lorsque la France lui a demandé si elle avait comparé d'autres options, l'exécutif a répondu : « Pas vraiment. Tout le monde parle de Rust. »
Ce fut le moment de l'épiphanie : le choix était déjà fait avant l'analyse. Il ne s’agissait pas d’une étude technique, mais plutôt d’une justification rationnelle d’une décision émotionnelle.
La science derrière les préjugés
Les neurosciences ont montré que lorsque les croyances fondamentales de notre identité sont remises en question, notre cerveau réagit comme s’il était physiquement attaqué. Dans des études d'imagerie par résonance magnétique fonctionnelle (IRMf), les chercheurs ont observé que lorsqu'une croyance périphérique était remise en question, le cerveau répondait par un raisonnement logique…
… mais lorsque la croyance faisait partie de l'identité – comme une idéologie politique ou religieuse – l'amygdale (centre de la peur) et le cortex insulaire (qui traite la douleur émotionnelle et le dégoût) étaient activés. Le cerveau n’évaluait pas les preuves : il se défendait.
Les développeurs ne sont pas à l’abri de ce mécanisme. L'évaluation d'une langue alternative peut être perçue, inconsciemment, comme une menace pour l'identité d'une personne. Changer d’avis impliquerait d’imaginer une version différente de vous-même. Et c'est pourquoi, même face à des données objectives, nous continuons à nous accrocher à nos préférences.
Une industrie bâtie sur de mauvaises conversations
Chaque fois que les développeurs discutent de langages, deux conversations se déroulent en même temps. L'un est le visible, plein d'arguments techniques (« Go compile plus vite », « Python a la meilleure bibliothèque de machine learning »…) et un autre est invisible, et celui qui compte le plus pour les interlocuteurs (« Je suis un programmeur Rust, et je veux être reconnu comme tel »).
Le problème est que l’industrie a institutionnalisé cette dynamique. Des débats sont faits, repèresdes matrices de décision et des comparaisons qui feignent l’objectivité. Mais si la personne qui dirige l’évaluation est un passionné d’une certaine langue, le résultat est décidé dès le début. L’entreprise dépensera simplement des millions pour valider un choix émotionnel avec des données pour le sauvegarder.
Le coût invisible de l’identité
Les préjugés n’affectent pas seulement la productivité ; Cela a un coût financier énorme. Des études industrielles, telles que Bande Concernant le « quotient de développeur », ils estiment que les ingénieurs passent 42 % de leur temps à gérer la dette technique (les conséquences à long terme des raccourcis dans le développement logiciel), dont une grande partie résulte de mauvaises décisions concernant le langage et/ou le framework à utiliser.
Si chaque changement de langue ou cadre implique de réapprendre, de refaire et de réembaucher, le coût total peut représenter jusqu'à la moitié du budget de développement au cours d'un produit.
C’est pour cette raison que la France propose un changement de paradigme. Au lieu de nous demander « quelle est la meilleure langue ? », nous devrions nous demander « Combien cette décision nous coûtera-t-elle ? » L’objectif n’est pas d’éliminer le facteur émotionnel (ce serait impossible), mais de rendre visibles les coûts invisibles et de permettre que des décisions soient prises sur la base de mesures plutôt que de « loyautés ».