Le réécrire en Rails
(dirkjonker.bearblog.dev)-
Début du blog
- En 2022, le développement d’une application pour remplir des déclarations en douane a commencé.
- Après avoir évalué plusieurs langages et frameworks, le choix s’est porté sur Ruby on Rails.
- Comme Rails était déjà familier, le développement a pu aller 10 fois plus vite qu’avec les autres options.
-
Développement de la version 2
- Le développement de la deuxième version de l’application a commencé avec Rust et SvelteKit.
- Au départ, c’était rapide et prometteur, mais seulement 10 % des fonctionnalités nécessaires ont été implémentées.
- Comme il n’existe pas de framework Rust comparable à Rails, cela a demandé beaucoup de temps.
-
Les avantages de Rust
- Les avantages de Rust en matière de performances et de compilation sans erreurs ont été constatés.
- En Ruby, les erreurs d’exécution étant fréquentes, le besoin de Rust s’est fait sentir.
-
L’évolution du frontend
- Insatisfait du frontend de Rails, le choix a été fait de passer à SvelteKit.
- Certaines pages ont été migrées rapidement vers la nouvelle stack, mais le déploiement est devenu plus complexe.
-
La réalité du développement
- La partie Rails a continué d’évoluer en ajoutant des fonctionnalités utiles.
- Il est devenu clair que le passage à Rust et Svelte n’apportait pas de valeur directe aux utilisateurs.
-
La difficulté de la décision
- La décision a été prise d’abandonner la nouvelle stack et de revenir à Rails.
- Les membres de l’équipe ont été encouragés à apprendre Rails.
-
Les atouts de Rails
- Rails sert de base à de nombreuses entreprises à succès et offre beaucoup de bibliothèques ainsi qu’un vaste écosystème.
- Il permet de se concentrer sur le développement du produit.
-
Leçons retenues
- Apprendre de nouveaux langages et frameworks apporte de nombreux enseignements.
- Le développement d’applications web exige beaucoup de choix et de compromis.
- Revenir à Rails a été une bonne décision et a amélioré la productivité.
-
Les inconvénients de Ruby et Rails
- Les problèmes à l’exécution peuvent être résolus par des tests.
- Si le code devient complexe, c’est un problème de développement et il faut bien l’organiser.
- Rails est suffisamment rapide, et les performances peuvent être améliorées avec Turbo et le caching.
-
Conclusion
- Il n’existe pas de langage ou de framework parfait ; il faut comprendre et exploiter les avantages et inconvénients de chacun.
- Rails est un bon choix, et beaucoup d’autres frameworks sont également excellents.
2 commentaires
Réécrivez-le en Ruby
Réécrivez-le en Rails
Commentaires sur Hacker News
Rails, Django et Laravel sont très largement en avance sur les autres stacks pour le développement d’applications web. Ils gèrent les tâches répétitives, comprennent bien les besoins et ne gênent pas lorsqu’on construit une application. Le développement web est considéré comme un problème déjà résolu, et les technologies liées à JavaScript ont tendance à être pilotées par le financement des grandes entreprises
J’utilise Rails depuis 17 ans, et je l’aime toujours autant et le préfère encore. Il permet de séparer facilement le code, ce qui évite que l’en-tête des fichiers ne devienne inutilement long. En séparant la logique et le balisage, on peut les tester indépendamment, ce qui facilite le suivi des bugs
Rust est un langage conçu par des gens très intelligents, mais il est tellement centré sur la théorie des types et l’allocation mémoire qu’il reste difficile à comprendre pour le développeur moyen. Même en lisant des billets de blog sur Rust, je n’en comprends qu’environ la moitié
Il y a moins de plaintes à propos de Ruby et de Rails. Il n’existe ni langage ni framework parfait, et il faut connaître leurs points forts et leurs faiblesses pour faire avec
Il est difficile d’écrire rapidement une grande application web en Rust. Les grandes applications écrites en Rails ne s’exécutent pas rapidement, peuvent contenir beaucoup de bugs et être difficiles à maintenir et à faire évoluer. Des langages comme Java, C# et Go permettent de livrer aussi vite qu’avec Rails tout en s’exécutant aussi vite que Rust
Si des technologies comme NextJS et SvelteKit sont populaires parmi les développeurs JS, c’est parce qu’elles résolvent les problèmes d’expérience de développement backend de Node.JS. Rails a révolutionné en 2006 l’idée d’une solution complète pour construire des applications
Je teste AdonisJS comme alternative TS à Rails. C’est similaire à Rails ou Laravel et cela réduit la charge qui consiste à devoir décider de chaque partie de la stack
Je suis perplexe face à l’idée que Rust ne conviendrait pas aux backends web. J’ai eu une bonne expérience sur de petits services, et même si la complexité peut augmenter lorsqu’on construit une grosse application, Rust donne la confiance nécessaire sur une base de code de grande taille
J’ai une expérience similaire avec Django, et les problèmes de performance viennent principalement des requêtes de base de données plutôt que de Django lui-même
Je me demande pourquoi utiliser Rails alors qu’on n’est plus en 2010. Il existe de nombreuses alternatives comme Java (Spring), Go et Node. Choisir Rust semble aussi étrange que choisir C++