Ruby on Rails: Rails 7.0 wird flexibler und nutzt weniger Javascript

Rails 7.0 ist veröffentlicht. Für die Developer erfüllt sich damit endlich ihre Vision, einen echten Fullstack-Ansatz für die Webentwicklung zu bieten. Front- und Back-End Herausforderungen begegnet die neue Version mit "equal vigor" (deutsch: mit gleicher Kraft), wie es in dem Posting(öffnet im neuen Fenster) zum Release heißt.
Vieles von dem, was neu ist, wäre vor ein paar Jahren laut den Entwicklern noch gar nicht möglich gewesen. Browsersupport für ES6/ESM, die Verbreitung von HTTP/2, der neue Standard für Import-Maps zählen für sie zu den wichtigen Änderungen, die das neue Rails möglich gemacht haben: Rails 7 verfolgt den Ansatz, standardmäßig ohne Node im Frontend auszukommen, ohne jedoch Zugriff auf modernes Javascript oder auf npm-Pakete ganz zu opfern.
Entwickeln mit Turbo und Stimulus
Eine große Rolle spielen dabei die Tools Turbo(öffnet im neuen Fenster) und Stimulus(öffnet im neuen Fenster) von Hotwire(öffnet im neuen Fenster) , mit deren Hilfe es erreicht wird, trotzdem nicht hinter modernen Single-Page-Webseiten zurückzustehen. Die beiden Werkzeuge ersetzen in der Standardauswahl die bisherigen Optionen Turbolinks und Rails UJS. Mit dieser Standardauswahl brauchten Projekte kein Node mehr, freuen sich die Entwickler: "Wir haben es immer noch geschafft, auch die Integration [von Node] dramatisch zu verbessern." Javascript in der bisherigen Form ist zwar nicht mehr Standard, aber immer noch möglich. Javascript-Bundler sind nur noch lose gekoppelt, gleiches gilt für CSS-Bundler, die sich auf Node verlassen.
Neuerungen bei den Features
Bei den Active Records gibt es nun encryption attributes (dt.: verschlüsselte Attribute), die Sicherheit und Datenschutz erhöhen, weil so sensitive Daten zum Beispiel nicht mehr in Logs landen – schon im Sourcecode der Applikation wird festgelegt, was sensitive Daten sind. Dazu können Controller nun mehrere Querys asynchron ausführen und so mehrere Abfragen nach benötigten Daten gleichzeitig starten. Der Zeitwerk Code Loader(öffnet im neuen Fenster) wurde für Autoloading eingeführt. Die Standardeinstellungen schalten Spring(öffnet im neuen Fenster) ab, weil es durch schnellere Computer inzwischen weniger relevant geworden ist. Und send_stream macht das, was send_data bisher für statische Dateien machte, für Streams.
Eine Menge Commits und eine Menge Kontributoren
Über viertausend Commits von mehreren Hundert Kontributoren seit dem Release von Rails 6.1 sprechen für den großen Umfang der Änderungen.