Ruby On Rails, encore d’actualité ? (2016)
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.
Ruby on Rails, or RoR, the free MVC Web framework, appeared on the market in 2005 and quickly gained pre-eminence for Web application development, seducing developers with the ease and elegance of its functional prototype building. RoR’s star waxed between 2006 and 2009, after which it went on the wane. RoR, based on Ruby, is functionally comparable to ASP.NET MVC, (C#), Laravel (PHP), Django (Python).
Is RoR a dying platform?
Far from it. Today, many well-known companies use and trust RoR, such as Basecamp, GitHub, Shopify, Airbnb, Twitch, SoundCloud, Hulu, Zendesk, among others. It is still being developed actively and remains an excellent, competitive choice.
RoR’s decline among Web programmers is mainly due to the emergence of new competitive solutions since 2006, especially Node.js and its associated frameworks (such as Sails or Express, for example), in 2009-2010. This solution opened new horizons to the many JavaScript developers, while knowledge of Ruby remains a prerequisite for RoR in order to truly take advantage of its full potential.
Aside from its contemporary, Django (in Python), RoR was at one time the only solution that supported scaffolding, or object-relational mapping (ORM), which made it possible to build applications with just a few command lines. This capability went over extremely well with developers who were tired of PHP, and contributed to its success.
In search of performance
RoR’s main drawback is its performance, since it is powered by Ruby, a sluggish language to start with. As Jared Friedman, Scribd cofounder, said in September, Ruby is suffering from not having a major sponsor.
PHP benefitted from Facebook’s vote, while JavaScript rode the Google development wave; but Ruby, which relies on volunteer individual and institutional contributors, remains orphaned. Twitter, which chose RoR, could have done for it what Facebook did for PHP, but its engineers, faced with an explosive load, decided to set aside Ruby in favour of services in other languages including, mainly, Scala. In 2013, LinkedIn also gave up on RoR, going with Node.js instead, given the added benefit of merging the front-end JavaScript and server code teams.
That being said, not all Web applications are on the same scale as Twitter, and brute performance isn’t always essential. Furthermore, no matter what the platform, scalability is always a delicate balancing act. In other words, if you hope to have hundreds of thousands of users for your application (especially if you plan to go cache-free), then RoR can quickly hit its limit. But for the vast majority of projects, RoR is more than sufficient.
RoR hasn’t said its last word
The framework is still under active development. (Rails 5 is coming soon) and, furthermore, RoR is a stable and mature solution, something that can’t be said of more recent solutions. With the right Ruby programmers, RoR can respond to all your needs with lightning speed. Further, Ruby is a solid, concise and elegant language, specifically developed to make developers happy.
Of course, all things Node.js are the lastest rage… but fashions come and go, and only the truly robust systems stand the test of time. RoR, initially considered a “cool hipster programmer language”, is now a mature language that is here to stay, if only due to the number of applications already developed with it. And, unless some revolutionary framework surfaces, it will continue to be used for projects of all sizes.