La dernière mise à jour de Ruby on Rails, le framework d'application web, dont la première version stable 1.0 est sortie il y a 17 ans, est passé au stade alpha. Rails 7 comporte en particulier un mécanisme pour écrire du JavaScript dans Rails qui remplace l'outil Webpacker de bundling JavaScript, que Ruby on Rails utilise depuis cinq ans. Rails 7 adopte une approche no-Node, sans avoir à renoncer aux paquets NPM. Cette approche profite des progrès réalisés dans la prise en charge par les navigateurs de l'ECMAScript 6, des modules JavaScript, de HTTP/2 et de l'outil Import Maps for Rails pour l'importation de modules JS.

De plus, avec le remplacement de TurboLinks et de Rails UJS par le framework Stimulus JS et l'outil Turbo pour éviter le recours à un JS personnalisé, Rails dispose désormais d'une configuration frontale complète et prête à l'emploi pour écrire des applications Rails. Il n'est plus nécessaire de s'occuper des dépendances de Node dans les node_modules, ni des configurations de bundlers ou d'autres problèmes courants de développement JavaScript, comme l’explique un avis du 15 septembre annonçant la version alpha.

D’autres évolutions attendues

Les développeurs de Rails ont également amélioré l'intégration entre Rails et les bundlers JavaScript + CSS. Des gems compagnons peuvent être déclenchés via les nouveaux -javascript[bundler] et -css[bundler] de Rails, ce qui peut démarrer une autre application ou en modifier une qui commence par l’importation de cartes utilisant Esbuild, Rollup.js, Webpack et d'autres technologies.

Parmi les autres ajouts et modifications de Rails 7.0, on peut citer :

- Des attributs chiffrés ont été ajoutés à Active Record, de façon à permettre à une application d'offrir un chiffrement pendant l’exécution en plus de la couverture traditionnelle au repos et en transit, renforçant ainsi la sécurité.

- Chargement asynchrone des requêtes pour l'exécution des requêtes en parallèle.

- Le préchargeur d'application Spring pour Rails n'est plus activé par défaut, les ordinateurs plus rapides ne justifiant plus son usage d’office.

- ActionController::Live#send_stream permet de diffuser facilement les fichiers de  flux générés à la volée dans les actions du contrôleur.

- Active Storage utilise désormais la bibliothèque de traitement d’image libvips, plus sûre et plus rapide, comme processeur de variantes par défaut.

- Les tests parallélisés comparent désormais le nombre de cœurs de CPU au nombre de tests et adaptent la parallélisation en conséquence.

Les instructions pour démarrer avec Rails sont disponibles sur guides.rubyonrails.org.