Écrire

Blog ·

Avec l’IA, l’écosystème Ruby n’a jamais autant bougé

DHH semble blasé et ses agents réécrivent Campfire en Rust. Côté Ruby, les nouvelles gems ont presque doublé en un an. L’avis d’un dev Rails qui code avec des agents.

Rails reste pour moi l’un des meilleurs outils pour prototyper vite, et les agents IA ne changent rien à ça. Ils rendent même l’écosystème Ruby plus vivant qu’il ne l’était avant, alors que le créateur de Rails n’a jamais paru aussi détaché.

Ce qui s’est passé à Rails World

La keynote de DHH à Rails World 2026 a laissé une drôle d’impression. Julik Tarkhanov, développeur Ruby de longue date, y a entendu « la voix de quelqu’un en pleine crise existentielle, mais aussi très blasé ». Il résume ainsi le message : « regardez comme je m’en fiche, vous ne devriez pas vous en soucier non plus ». Pas idéal, note-t-il, quand on est la tête d’affiche de la conférence.

Quelques jours plus tard, DHH a partagé sur X une expérience : des agents ont réécrit Campfire, l’application de chat de 37signals, en Elixir, en Go et en Rust, en quelques heures chacun. Selon ses chiffres, la version Rust encaisse 36 260 requêtes par seconde sur une page de salon, contre 241 pour Rails. Le benchmark a été critiqué, notamment parce que la version Rust aurait été bien plus optimisée que les autres. DHH en tire une conclusion : avec du code écrit par des agents, il faut « s’adapter à une nouvelle réalité ».

Ce que disent les chiffres côté Ruby

Julik répond chiffres à l’appui. D’après les données de RubyGems hébergées par ClickHouse, environ 8 900 noms de gems ont été enregistrés pour la première fois ces douze derniers mois, contre 4 600 l’année précédente, soit 1,9 fois plus. Il cite des chantiers longtemps restés en friche : des bibliothèques PDF, une bibliothèque Parquet complète, un client gRPC compatible avec Async, le retour de Shoes sous le nom de Scarpe.

Le langage lui-même avance. Ruby 4.1 preview 1 est sortie le 12 octobre. Chez Shopify, ZJIT tourne désormais en production dans quelques petites régions et semble aussi rapide que YJIT, avec 101 Mio de mémoire JIT contre 125. Max Bernstein, qui signe l’article, prévient que l’échantillon est petit et ne couvre que 24 heures.

L’outillage s’adapte aussi aux agents. RuboCop 1.92 ajoute une sortie JSON plus détaillée, un plafond d’offenses par cop, une option --explain et un serveur MCP revu. Bozhidar Batsov l’explique bien : un agent a une patience infinie, mais toute la sortie de RuboCop atterrit dans sa fenêtre de contexte, et il ne peut pas sauter le superflu comme le ferait un humain.

Mon exemple : une contribution que je n’aurais pas faite

En septembre, je suis tombé sur un bug dans forest-rails, la gem open source qui branche le back-office Forest Admin sur une application Rails. Les graphiques de type leaderboard renvoyaient une erreur 500 dès que le modèle lié ne déclarait pas de belongs_to vers la collection parente. J’ai testé les 66 relations d’une collection : 35 levaient cette erreur, 21 une autre, et seulement 10 répondaient.

Le correctif tient en une idée : partir de la collection parente, joindre la relation, puis agréger sur le modèle lié. Je ne connaissais pas le code de la gem, et le getter n’avait aucun test. Sans agent, je n’aurais pas pris le temps de m’y plonger : comprendre la requête, retrouver la régression, écrire les specs, c’était trop long pour un bug qui ne bloquait que des graphiques. Avec un agent, j’ai pu ouvrir la PR ; elle a été fusionnée et publiée.

C’est ce que décrit Julik, à mon échelle : l’IA abaisse le coût d’entrée dans du code qu’on ne connaît pas. Boucher les petits trous de l’écosystème devient rentable.

Et Rust ?

Je comprends l’envie. Quand un agent réécrit une application en quelques heures et qu’elle va beaucoup plus vite, la question se pose. Mais je pense que ce besoin, bien réel, ne concerne qu’une minorité. On n’est pas tous 37signals, avec des produits utilisés par énormément de monde. Pour la plupart des applications, ce n’est pas le nombre de requêtes par seconde qui limite.

Pour prototyper, Rails garde un avantage que l’IA ne fait pas disparaître : des conventions connues, une structure prévisible, beaucoup de choses déjà décidées. L’agent part d’un cadre que tout le monde connaît, et moi je relis un code dont je connais les règles.

Je ne sais pas combien de ces 8 900 nouvelles gems seront encore maintenues dans deux ans. Une partie sera abandonnée, c’est certain. Mais l’écosystème bouge, et je pense que l’IA va faire des trucs cool pour Rails.


Sources : The Weimar of Ruby, Julik Tarkhanov, The Register sur les ports de Campfire, Ruby 4.1.0 preview 1, ZJIT is now as fast as YJIT, RuboCop 1.92, ma PR sur forest-rails. Texte rédigé avec l’aide d’une IA à partir de mes idées, puis relu par moi.