- L’imprinting du premier langage crée une affection unique pour Ruby, et beaucoup de développeurs acceptent ainsi ses défauts comme des traits de caractère.
- En découvrant Ruby plus tard, les défauts sous la surface brillante apparaissent tels quels : les failles du typage dynamique, les risques de footgun et les performances lentes, avec une impression très forte d’avoir une génération de retard.
- Le cas du Fail Whale de Twitter et la migration vers Scala, ainsi que la vague de départ de Ruby tout au long des années 2010, prouvent cette limite de performance.
- Rails a marqué une époque, mais la philosophie intégrée est désormais un mur de scalabilité et ne cadre plus naturellement avec la croissance explosive du web.
- Aujourd’hui, ce qui soutient Ruby, ce sont surtout le legacy Rails, la loyauté émotionnelle des premiers développeurs imprégnés, et la nostalgie d’un nom jugé beau.
La force de l’imprinting des langages de programmation
- Le concept d’imprinting en psychologie fonctionne de manière similaire à la programmation.
Comme un caneton qui considère le premier être aperçu comme sa mère, le premier langage appris domine longtemps la perception d’un développeur.
- Ruby est l’un des principaux bénéficiaires de cet imprinting.
Relié au moment où « la programmation paraît enfin naturelle », il laisse une forte affection pour le langage lui-même.
- Quand on apprend le langage tôt, l’affection domine et rend les défauts moins visibles ; quand on le découvre plus tard, l’effet de voile disparaît et ne reste que l’essentiel.
Naissance et caractéristiques de Ruby
- Ruby a été créé en 1995 par Yukihiro Matsumoto (Matz), un développeur originaire d’Osaka, au Japon. Ruby est le seul langage de programmation majeur né en dehors des régions occidentales.
- Il existe une devise communautaire, MINASWAN (Matz Is Nice And So We Are Nice), issue du tempérament bienveillant de Matz.
- Doté d’une syntaxe concise, sans point-virgule ni parenthèses, il se lit comme un anglais plus fluide que Python.
- Ruby est souvent cité comme le langage qui offre aux débutants le moment où la programmation devient « compréhensible ».
Ce que Ruby dévoile quand on l’apprend tardivement
- En arrivant à Ruby après avoir appris plusieurs langages, c’est d’abord une certaine imprécision dépassée apparaissant avant l’élégance attendue qui se manifeste.
- Derrière une syntaxe conçue pour paraître belle, persistent l’ambiguïté du typage dynamique et des comportements imprévisibles.
- Ruby est un langage à typage dynamique ; il est flexible sur des projets de petite taille, mais sur des structures à grande échelle les erreurs n’apparaissent qu’à l’exécution.
- Python ou JavaScript ont depuis des années renforcé leurs outils de typage et leur écosystème d’analyse statique (par exemple TypeScript, mypy).
- Ruby manque d’outils équivalents et reste vulnérable à des mécanismes qualifiés de "footgun" (le genre de fonctionnalité qui vous fait tirer dans votre propre pied).
- Ce qui semble doux à petite échelle, c’est aussi le risque de voir les erreurs n’apparaître qu’au moment de l’exécution quand le système grandit.
Les limites de performance constantes de Ruby
- Dans les comparaisons de performance des principaux langages, Ruby se maintient presque toujours dans les dernières positions.
- L’époque du Fail Whale de Twitter (la baleine affichée en cas d’erreur) était un symbole de la limite de son infrastructure basée sur Ruby ; lors du mondial de 2010, une panne massive l’a rendu encore plus évident.
- Twitter est ensuite passé à Scala, puis lors de la finale de la Coupe du monde 2014 il a traité 32 millions de tweets sans incident, avec un nouveau backend jusqu’à 100 fois plus rapide que le précédent.
- Tout au long des années 2010, de nombreuses entreprises sont sorties des infrastructures Ruby, et ce qui reste est pour l’essentiel maintenu comme legacy.
La place que Ruby a perdue
- À une époque, les concurrents de Ruby — Python, JavaScript et Perl — ont chacun conquis un périmètre plus clair.
Python a pris les marchés de l’IA, de la science et de l’éducation ; JavaScript a conquis le web dans son ensemble.
Perl est en déclin, mais Ruby n’a pas trouvé de place à prendre à sa place.
- À mesure que Ruby perd ses zones de force propres, il reste aujourd’hui dans une zone intermédiaire floue.
Rails, le dernier rempart
- La raison principale pour laquelle Ruby reste encore vivant en production est Rails.
- Rails a mené l’ère Web 2.0 après sa publication par DHH en 2004, fournissant alors tous les aspects du développement web dans une vision intégrée unique.
- Le développeur danois David Heinemeier Hansson (DHH) est connu, à l’inverse de Matz, comme une figure polémique et charismatique.
- Au début du Web 2.0, Rails a séduit les startups en proposant dans un package tout-en-un base de données, frontend et backend.
- Des sociétés comme Airbnb, GitHub, Twitter, Shopify et Stripe ont démarré avec Rails.
- Mais avec la croissance explosive du web, la structure intégrée de Rails est devenue un obstacle à la scalabilité.
Comme la Maison Farnsworth de Frank Lloyd Wright, elle est au départ belle, puis est devenue une architecture presque impossible à réaménager.
Le recul de Ruby et ce qui lui reste
- Selon l’enquête développeurs de Stack Overflow, Ruby est passé du Top 10 en 2013 à la 18e place en 2025, repoussée derrière l’Assembly.
- Les nouveaux développeurs se tournent vers Python et JavaScript, et Ruby ne reste qu’un langage pour quelques développeurs imprégnés de souvenirs passés.
- Aujourd’hui, ce qui soutient Ruby, c’est le legacy Rails, la loyauté émotionnelle des développeurs marqués au fer rouge, et l’image affective d’une syntaxe belle et facile à lire.
- Mais l’émotion seule ne peut pas relever la position d’un langage, et la réalité est déjà passée à des outils plus rapides, plus sûrs et plus évolutifs.
Aucun commentaire pour le moment.