Logo Spiria

Ruby On Rails, encore d’actualité ?

7 mars 2016.

Ruby on Rails

Ruby on Rails, ou RoR, le framework web MVC libre, est apparu sur le marché en 2005 et a vite pris une place de premier plan pour le développement d’applications web. La possibilité de monter rapidement et avec élégance des prototypes fonctionnels a immédiatement séduit les développeurs. RoR a eu le vent en poupe dans les années 2006-2009, mais il faut convenir que ce n’est plus la vedette du moment et que sa notoriété est un peu sur le déclin. RoR, basé sur Ruby, est fonctionnellement comparable à ASP.NET MVC (C#), Laravel (PHP), Django (Python).

RoR est-il une plateforme mourante ?

Non, certainement pas, même si l’on a pu l’entendre. De nos jours, de très notables entreprises lui font encore confiance. Nous citerons ainsi Basecamp, GitHub, Shopify, Airbnb, Twitch, SoundCloud, Hulu, Zendesk, etc. Son développement est toujours actif et c’est resté une solution de choix, tout à fait concurrentielle.

Si RoR n’est plus au firmament des programmeurs web, c’est surtout du fait de l’émergence d’autres solutions compétitives depuis 2006, en premier lieu avec Node.js et ses frameworks associés (comme Sails ou Express, par exemple), en 2009-2010. Cette option ouvrait alors des horizons nouveaux aux nombreux développeurs qui avaient déjà l’expérience de JavaScript ; tandis que la barrière reste toujours plus haute pour RoR qui nécessite d’apprendre Ruby afin de vraiment en exploiter toutes les capacités.

Si l’on met de côté son contemporain Django (en Python), RoR était à l’époque seul à offrir l’échafaudage (scaffolding), le mapping objet-relationnel, la possibilité de bâtir une application avec quelques lignes de commandes… ce qui ne manquait pas d’attrait pour des développeurs fatigués de PHP et qui a contribué à son succès.

En quête de performance

Le principal handicap de RoR est la performance, héritage de Ruby, langage qui n’a jamais été très rapide. Comme Jared Friedman, cofondateur de Scribd, le soulignait en septembre dernier, Ruby souffre de ne pas avoir d’important commanditaire.

PHP a bénéficié de l’investissement de Facebook, et JavaScript des développements de Google, mais Ruby, qui repose sur le bénévolat de contributeurs individuels et institutionnels, reste sensiblement à la traîne. Twitter, qui s’est lancé avec RoR, aurait pu jouer le rôle de Facebook pour PHP, mais ses ingénieurs, devant affronter une spectaculaire montée en charge, ont préféré délaisser partiellement Ruby au profit de services dans différents langages dont, et principalement, Scala. LinkedIn a aussi abandonné RoR, passant à Node.js en 2013, y voyant de plus l’avantage de fusionner l’équipe front-end JavaScript avec celle du code serveur.

Cela étant dit, les applications web ne sont pas toutes de l’ordre de Twitter, et la performance brute n’est pas nécessairement essentielle. Enfin, quelle que soit la plateforme, les montées en puissance sont toujours des phases délicates à gérer. Donc, si vous visez plusieurs centaines de milliers d’utilisateurs pour votre application (surtout sans mise en cache), RoR peut atteindre assez vite ses limites. Mais pour l’immense majorité des projets, RoR est amplement suffisant.

RoR a encore des choses à dire

Le framework est toujours en développement actif (Rails 5 arrive très prochainement) et surtout, il est stable et mature, ce qui n’est pas forcément le cas de solutions plus récentes. Pourvu qu’on ait les bons programmeurs Ruby, elle permet de répondre dans des délais records à un très grand nombre de besoins. En outre, Ruby est un langage solide, concis et élégant, spécifiquement conçu pour “rendre le développeur heureux”.

Certes, tout ce qui tourne autour de Node.js est à la mode ces derniers temps… mais les modes passent et seuls les systèmes ayant acquis une certaine robustesse perdurent. RoR, qui était au départ un “truc cool de programmeur hipster”, a atteint la maturité et est fait pour demeurer dans le paysage, ne serait-ce qu’en raison du nombre d’applications déjà développées. Et, sauf framework révolutionnaire, on continuera à l’utiliser pour des projets de toutes tailles.