Pourquoi Ruby on Rails reste important : comment un ancien outil survit dans le monde de Next.js
(contraption.co)- Récemment, l’auteur a retrouvé les vieux disques vinyles de son grand-père et a été surpris de constater que ce support d’une autre époque se lisait encore parfaitement
- Le vinyle a profondément transformé la distribution de la musique, en permettant sa reproduction et son partage, et il reste une référence encore aujourd’hui
- Les méthodes de partage audio ont évolué, mais les premières approches fonctionnent toujours
- Dans un monde de plus en plus complexe, beaucoup reviennent au vinyle pour sa simplicité, sa stabilité et sa durabilité
- Au milieu des changements constants des technologies web, il est facile d’oublier que les anciens sites web fonctionnent encore très bien
- Même les simples sites textuels des années 1990 se chargent aujourd’hui dans les navigateurs modernes exactement comme à l’époque
- Les sites web ont gagné au fil du temps des fonctions supplémentaires comme le style via CSS, l’interactivité via JavaScript et les mises à jour en temps réel via les WebSockets
- Mais leur fondation repose toujours sur les pages, les formulaires et les sessions
- Ruby on Rails est apparu il y a 20 ans avec une approche intégrée pour construire des applications web interactives et basées sur des bases de données
- Il a servi de socle à d’innombrables entreprises à succès comme Airbnb, Shopify, Github, Instacart, Gusto et Square, et des activités représentant aujourd’hui plusieurs milliers de milliards de dollars tournent sur Ruby on Rails
- Les outils efficaces simplifient les tâches complexes grâce à l’abstraction
- En prenant la voiture comme exemple, conduire nécessitait autrefois de comprendre le système de carburant, le calage et la mécanique de l’embrayage, alors qu’aujourd’hui la plupart des conducteurs ne savent même pas combien de vitesses possède leur véhicule
- Ruby on Rails a empaqueté les bonnes pratiques du développement web — sessions de connexion, protection CSRF, ORM de base de données — dans une boîte à outils accessible
- Ces abstractions permettent aux développeurs de se concentrer sur la construction du produit plutôt que sur les détails techniques
- Aujourd’hui, la plupart des développeurs ne savent pas ce que contient un cookie de connexion, mais c’est pourtant ce qui fait tourner leurs applications
- Rails a réussi en restant fidèle aux éléments fondamentaux du web
- Il s’appuie sur les bases de HTML comme les pages, les champs de saisie et les formulaires
- En tant que framework centré sur le back-end, il se concentre sur la validation, le traitement et le stockage des données, ce qui simplifie la création de formulaires
- JavaScript a pris de l’importance après le succès initial de Rails
- Les avancées du développement web de la dernière décennie ont essentiellement donné aux sites web les capacités d’apps iPhone, tout en restant des sites web
- Next.js est désormais l’outil le plus courant pour créer des startups
- En tant que framework centré sur le front-end, il permet des états de chargement dynamiques, le rendu côté serveur et la construction de composants complexes
- D’autres entreprises valant plusieurs milliers de milliards de dollars se construisent sur Next.js, et ces applications web sont plus rapides et plus sophistiquées que celles construites avec Ruby on Rails
- Next.js et sa technologie sous-jacente, React, portent une grande partie de l’innovation web moderne
- En pratique, des produits grand public majeurs comme Spotify, Netflix, Facebook et Stripe fonctionnent tous sur cette pile
- Cela permet aux développeurs de créer des produits interactifs rapides et sur mesure qui dépassent les limites des standards du web
- Malgré l’adoption rapide de Next.js, Rails reste pertinent
- De nouveaux projets, du projet indépendant aux entreprises d’IA, continuent de choisir Rails
- En réalité, la vague des nouveaux frameworks web JavaScript comme Next.js a rendu la construction d’applications web plus difficile
- Ces outils offrent davantage de capacités aux développeurs, comme le rendu de données dynamiques et les interactions en temps réel, mais au prix d’un niveau d’abstraction plus faible
- Next.js rivalise en fait avec les apps iPhone natives
- Autrefois, les startups avaient besoin d’une app iPhone pour offrir une expérience utilisateur sophistiquée, et construire une app iPhone était souvent un processus complexe nécessitant plusieurs développeurs spécialisés
- Next.js a permis aux sites web de s’approcher de la qualité des apps iPhone
- Aujourd’hui, certains des produits les plus sophistiqués, comme Linear et ChatGPT, ont été lancés comme applications Next.js, en traitant les apps mobiles comme une priorité secondaire.
- Rails a évolué pendant les 20 ans qui ont suivi son lancement en ajoutant des interactions JavaScript, la gestion des tâches back-end, des états de chargement et des outils pour les applications en temps réel
- Il prend aussi en charge le développement d’applications mobiles. À mesure que les patterns applicatifs ont évolué, Rails les a intégrés comme fonctionnalités du framework tout en conservant sa base fondée sur HTML
- La plupart des applications web sont encore constituées de formulaires sur des pages
- C’est le cas des job boards, des systèmes fournisseurs ou des boutiques e-commerce
- Next.js peut les construire, mais cela demande davantage de temps de développement que Rails
- Utiliser un framework de pointe introduit de l’instabilité à travers des mises à jour fréquentes, de nouvelles bibliothèques et des problèmes inattendus
- Les applications Next.js dépendent souvent de nombreux services tiers comme Vercel, Resend et Temporal, ce qui accroît le risque plateforme
- Les développeurs continuent de choisir Rails aujourd’hui parce qu’il reste, 20 ans plus tard, la manière la plus simple et la plus abstraite de construire des applications web
- Les développeurs solo peuvent créer seuls des applications web dynamiques et temps réel, tandis que les équipes enterprise peuvent bâtir des applications avec plusieurs modèles, des contrôles d’accès et une prise en charge poussée des tests
- Rails aide les petites équipes à travailler plus vite tout en réduisant les coûts de développement et de maintenance
- L’auteur a utilisé les deux frameworks
- Il a construit Find AI, une startup IA financée par du capital-risque, avec Rails
- En tant que moteur de recherche, le produit a bénéficié de la capacité de Rails à gérer un back-end complexe avec des besoins front-end simples
- Il travaille actuellement sur Chroma Cloud pour explorer et gérer de grands jeux de données, et Next.js répond à ses besoins d’interactions avancées et de chargement de données
- Rails commence à montrer des signes d’âge dans la vague actuelle d’applications propulsées par l’IA
- Il rencontre des difficultés dans des domaines comme le streaming de texte des LLM (grands modèles de langage), le parallélisme en Ruby et la prise en charge forte du typage pour les outils de coding IA.
- Malgré cela, il reste un outil efficace
- Le vinyle a élargi l’accès à la musique et transformé l’industrie
- Avec le temps, la qualité audio s’est améliorée, mais le format d’origine conserve toujours sa valeur
- The Köln Concert reste populaire quel que soit le bitrate
- Dans la technologie aussi, on peut apprécier des produits sophistiqués comme Linear, tout en constatant qu’un site au style années 90 comme Craigslist peut encore générer davantage de revenus.
- En fin de compte, les utilisateurs se soucient davantage de l’utilité d’un produit que de sa manière d’être implémenté
- Le raffinement visuel peut disparaître, mais l’utilité demeure
7 commentaires
Airbnb, Shopify, Github... il y a plus d’entreprises qui utilisent Ruby on Rails que je ne le pensais !! 😊
J’apprends seulement maintenant que GitHub a été développé avec Rails. En revanche, c’est bien le cas de GitLab... GitLab a vraiment bien utilisé Rails, donc ça m’est resté longtemps en mémoire.
Au début de GitHub, le réseau s’est construit autour de la communauté Rails.
https://read.first1000.co/p/-github
C’est un peu différent, mais il y a aussi eu un cas où Egor Homakov a pointé un problème de sécurité de Ruby on Rails (Mass Assignment Vulnerability). Comme c’était un problème qu’un développeur prudent pouvait éviter, il y avait débat sur le fait de le corriger ou non. (Puisqu’on pouvait répondre quelque chose comme RTFM.)
La méthode choisie par Egor Homakov pour le signaler a été d’attaquer GitHub, qui à l’époque fonctionnait aussi avec Rails, et hébergeait même Rails. Et il a effectivement réussi.
Cela a donc montré que même la plus grande application Rails n’était pas à l’abri de ce cas.
Je pense que c’était un choix entre faire confiance aux développeurs (gestion manuelle de la mémoire) ou ne pas leur faire confiance (GC, etc.), mais ça me revient souvent à l’esprit quand je vois des réponses du type RTFM, ou en sécurité, l’idée qu’« en le sachant, ils feront bien ».
https://news.ycombinator.com/item?id=3666564
Merci. :)
https://github.blog/engineering/building-github-with-ruby-and-rails/
Merci.
Avis Hacker News
Alors que des centaines de personnes lisent cet article en ce moment, vous y accédez en fait via le Mac Mini posé sur mon bureau
J’aime les applications web qui ne sont que des formulaires CRUD. Ça ne s’applique pas à tous les problèmes, mais cela fonctionne bien pour de nombreux domaines qui interagissent avec le monde réel. Dans l’esprit de « pour vérifier si vous avez un rendez-vous, consultez la liste des rendez-vous »
Ce qui est étrange avec la communauté Ruby/Rails, c’est qu’une moitié travaille tranquillement tandis que l’autre semble devoir rappeler périodiquement que Rails n’est pas mort
Rails montre son âge dans la vague des applications d’IA. Il a du mal avec le streaming de texte des LLM et le traitement parallèle
Je recommande Django + gevent. On bénéficie du système de types de Python, et c’est bien adapté au streaming ainsi qu’au parallélisme lié aux entrées/sorties. Ce n’est pas adapté au parallélisme CPU-bound, mais c’est moins important dans les applications web
On peut construire et maintenir un méta-framework web de type RoR avec Ruby, Django et le langage D
RoR est puissant. Mais tout évolue si vite qu’on a l’impression de prendre du retard si l’on ne suit pas les dernières technologies
J’ai entendu la critique selon laquelle les outils de codage IA souffrent du manque de typage fort, mais d’après mon expérience, les LLM fonctionnent bien sur une base de code Rails
J’utilise Django et tout me paraît nouveau. J’envoie du HTML avec htmx + alpine.js, et le fait de m’éloigner des API REST JSON a fortement amélioré ma productivité
RoR est excellent. Ruby doit aller plus loin que cela
Dans les années 2010, l’approche « la convention plutôt que la configuration » a gagné en popularité