Post
🇬🇧 English

Ruby on Rails un framework en fin de vie ?

Rails ? Ça scale pas trop comme tech non ?, Pourquoi tu n'utilise pas de framework Js ? C'est plus moderne!. C'est ce genre de questions qu'on me pose quand je dis que je suis développeur Rails, mais ont-ils vraiment raison ?

Lorsque je me présente en tant que développeur freelance Ruby on Rails à mes collègues dans le monde de la Tech, j’ai souvent le droit à des remarques comme: “C’est un framework dépassé non ?” ou encore “Ruby on Rails ? C’est encore utilisé ça ?”.

Si t’es un développeur Ruby on Rails, tu dois savoir de quoi je parle 🥲.

La plupart du temps je pars sur un mini-monologue pour expliquer que Ruby on Rails n’est pas en fin de vie et est bien loin de l’être!

Le but de cet article est donc de d’abord d’expliquer pourquoi Ruby on Rails est toujours un aussi bon choix pour créer une application web en 2022 mais aussi pour éviter que je fasse des mini-monologue à l’avenir (j’aurai juste à partager cet article) 😋.

Ruby on Rails, solide sans pris de tête

La première force de Ruby on Rails, c’est le langage sur lequel il est basé, Ruby. Je ne vais pas décrire Ruby dans cet article, mais il est important de savoir que ce langage a été créé dans le but de faciliter la vie du développeur (syntaxe, nom des méthodes etc.).

Ruby on Rails repose sur deux concepts dont tu as déjà dû entendre parler:

  • Convention over Configuration (CoC): Ce principe signifie que le développeur ne précise que les comportements qui sont inconventionnels dans l’application. Par exemple si on a un modèle Book, la table correspondante dans la base de données se nommera automatiquement books par convention. S’il souhaite donner un autre nom à la table (ex: magazins), donc une action inconventionnel, il devra alors écrire du code pour le préciser.
  • Don’t Repeat Yourself (DRY): Comme l’indique son nom, ce principe a pour but de ne pas dupliquer du code dans l’application. Pour ce faire Ruby on Rails nous met a disposition plusieurs outils: scopes, concerns, helpers, PORO, etc.

La propagande des SPA et des frameworks JS

Les SPA (Single Page Application) ont plusieurs avantages qui sont indéniables: un affichage plus rapide du contenu et une meilleure réactivité dans le but d’améliorer le plus possible l’expérience utilisateur. Seulement voilà, la plupart des applications développées avec des SPA, n’en n’ont pas réellement besoin. Elles n’ont que très peu de contenu à charger et/ou pas beaucoup d’interactions avec l’utilisateur. On se retrouve donc dans un schéma avec deux applications distinctes (Front et Back), alors qu’un monolith aurait très bien fait l’affaire…

Mais on ne peut pas leur en vouloir, car la propagande pour les frameworks JavaScript est conséquente. Si bien, que cela éclipse les autres bon frameworks, comme Ruby on Rails.

Cependant, c’est aussi de la faute de la communauté Ruby on Rails, qui est beaucoup moins active et fait moins parler d’elle à l’instar des autres frameworks tel que: Symfony, Laravel, Django, etc.

Et même si Ruby on Rails était plus connu, comment est-il possible de rendre l’expérience utilisateur aussi fluide qu’avec les frameworks JS ?

Hotwire, un peu de douceur dans ce monde de brute

Pendant longtemps, l’intégration du JavaScript dans Ruby on Rails n’était pas top. On a eu le droit à l’intégration du JS en utilisant le langage de templating ERB js.erb, très peu maintenable… Il n’existait pas de réel moyen pour ajouter un peu de piment aux interfaces utilisateurs, sans passer par la création d’un fichier JavaScript dans le projet. C’est à ce moment qu’Hotwire entre en jeu !

Hotwire (HTML Over The Wire) c’est la combinaison de 2 technologies:

  • Turbo: Composé de TurboDrive, Turbo Frames, Turbo Streams et Turbo Native. Il permet de réduire la quantité de JavaScript produite pour des actions simples (mise à jour du contenu, navigation, etc.)
  • Stimulus: Léger framework (voir libraire), qui permet d’ajouter des comportements au HTML. Par exemple: Changer la classe d’un élément lors d’un clique sur une case à cocher.

Les différents technologies qui compose Hotwire, s’intègrent parfaitement à l’écosystème Ruby on Rails, mais aussi à d’autres frameworks tel que Symfony (vrai reconnait vrai).

C’est bien beau tout ça, mais est-ce que ça scale ? 🥴

Ruby on Rails, l’Homme de l’Ombre

Quand on demande si un framework scale, on veut savoir si ce dernier peut supporter la charger d’une grande quantité d’utilisateur (> 1 millions par exemple).

Le site de plusieurs grosses entreprises du monde de la Tech est fait en Ruby on Rails:

  • Github
  • Doctolib (Cocorico 🐓)
  • AirBnb
  • Shopify

D’ailleurs, Ruby on Rails scale comme tout autre framework sur le marché 😉

Conclusion

En conclusion on peut dire que Ruby on Rails est un framework solide et fiable. Il est constamment mis à jour afin de permettre le développement d’applications qui répondent à la demande du web d’aujourd’hui.

Le but ici n’est pas de dire que Ruby on Rails est le meilleur framework qui existe, mais simplement préciser que c’est encore et toujours une technologie avec laquelle on peut développer des applications web solide.

Tous droits réservés par l'auteur.