Programmiersprache: Rust-Team blickt zwei Jahre nach vorn auf Rust 2024

Die nächste Edition der Programmiersprache soll einfacher zu lernen sein und Erweiterungen für das Async/Await-Pattern mitbringen.

In Pocket speichern vorlesen Druckansicht 33 Kommentare lesen
Gleisanlagen in Maschen im Gegenlicht

Gleisanlagen in Maschen

(Bild: MediaPortal der Deutschen Bahn)

Lesezeit: 5 Min.
Inhaltsverzeichnis

Das Rust-Language-Design-Team (Lang-Team) hat eine Roadmap für den Weg zur kommenden Edition der Programmiersprache veröffentlicht. Aus organisatorischer Sicht stehen drei Punkte im Fokus: eine flachere Lernkurve, ein besser vernetztes Ökosystem für Libraries und eine effizientere Weiterentwicklung der Sprache.

Einige Pläne sind mit konkreten Ergänzungen für die Programmiersprache verbunden, die unter anderem Boilerplate-Code vermeiden und die Entwicklung nach dem Async/Await-Pattern verbessern sollen. Das Team bezeichnet den Blogbeitrag zunächst als Ausgangspunkt und will zum Jahreswechsel die Pläne konkretisieren.

Der schwierige Einstieg in Rust steht immer wieder in der Kritik. Bei dem im Februar veröffentlichten Rust-Survey 2021 fanden 83 Prozent der knapp 10.000 Befragten den Weg zum produktiven Einsatz mit Rust herausfordernd. Auch in den Vorjahren beklagten sich viele über die steile Lernkurve. Diese ist auch laut dem Blogbeitrag zur Roadmap für viele der Hauptgrund, Rust nicht einzusetzen.

So gelte es nicht nur, die allgemeine Logik zu verstehen, sondern auch die konkrete Umsetzung bis ins kleinste Detail richtig hinzubekommen. Als Beispiel führt der Beitrag das Konzept von Ownership und Borrowing auf: "Auch wenn man gelernt hat, wie der Borrow Checker von Rust arbeitet, bleiben viele 'kleine Details', die man richtig hinbekommen muss, damit sich ein Rust-Programm kompilieren lässt."

Erklärtes Ziel für Rust 2024 ist, das Vorgehen so weit zu vereinfachen, dass sich Entwicklerinnen und Entwickler nur noch mit der inhärenten Komplexität ihrer Domäne auseinandersetzen müssen und nicht mehr mit der unbeabsichtigten Komplexität von Rust. Gerade für die Bereiche Embedded-Entwicklung und asynchrone Programme soll die Arbeit mit Rust laut Roadmap "nicht nur möglich, sondern unkompliziert und sehr angenehm werden".

Um die Einstiegshürde abzubauen und mehr Klarheit in diverse Bereiche der Sprache zu bringen, hat das Team vier konkrete Ziele im Auge:

  1. "Präzise Analysen statt Geschwätz": Verbesserungen bei Themen wie dem Borrow Checker und der Typinferenz sollen dafür sorgen, dass der Compiler korrekten Code leichter erkennt. Außerdem sollen Boilerplate-Ansätze wie das unnötige Kopieren gleicher where-Anweisungen verschwinden.
  2. Entwicklerinnen und Entwickler sollen einfacher und direkter ausdrücken können, was der Code bezweckt. Das kann zum einen durch syntaktischen Zucker wie die geplante let-else-Anweisung und zum anderen durch Erweiterungen des Typsystems erfolgen.
  3. Das Lang-Team will das in Rust 2018 eingeführte Async/Await-Pattern deutlich erweitern und beispielsweise async Funktionen in Traits erlauben. Details finden sich in der Roadmap der für die asynchrone Programmierung in Rust zuständigen Arbeitsgruppe wg-async.
  4. Die dynamische Übergabe von Werten über den dyn Trait, einem Tupel aus zwei Pointern, soll erweitert und die Arbeit mit dyn der mit Generics angepasst werden.

Für das Zusammenspiel von denjenigen, die Libraries entwickeln, und denen, die sie nutzen, hat das Team ebenfalls konkrete Pläne. Unter anderem ist ein Lebenszyklus für neue Features geplant, über den neue Funktionen vom experimentellen bis zum finalen Zustand in eine Bibliothek einfließen. Außerdem soll Rust erweiterte Abstraktionen bekommen. Die Autorinnen und Autoren von Libraries sollen zudem erweiterte Möglichkeiten haben, beim Verwenden ihrer Library zu helfen, indem sie unter anderem maßgeschneiderte Fehlermeldungen definieren.

Für die effizientere Weiterentwicklung der Sprache will das Lang-Team deutlicher zeigen, woran es gerade arbeitet und wie weit die jeweiligen Teilprojekte vorangeschritten sind. Außerdem soll es klare Aussagen zu den jeweiligen Projektverantwortlichen, die möglichst nicht dem Lang-Team entstammen, und zu den noch zu erledigenden Arbeiten geben.

Rust 2024 wird die vierte Edition der Programmiersprache nach Rust 2015, Rust 2018 und Rust 2021. Es bleibt somit nach dem derzeitigen Plan beim Dreijahrestakt. Dabei dürfte sich an der Versionierung nichts ändern: Im Zuge der Veröffentlichung von Rust 2018 in Rust 1.31 hatte das Rust-Team in einem Artikel auf Mozilla-Hacks den Unterschied zwischen dem Wechsel zu einer neuen Edition und dem Sprung auf eine neue Hauptversion erläutert.

Vor allem soll das Update so wenige Breaking Changes wie möglich verursachen. Seinerzeit führte das Team das Async/Await-Pattern ein, das als Nebenwirkung die neuen Keywords async und await mitbrachte. Das konnte zum Problem werden, wenn Code die zuvor nicht reservierten Begriffe beispielsweise als Variablennamen verwendet. Rust 2021 führte unter anderem Closures ein und ermöglicht das Iterieren über Arrays by Value mit einem eigenen Trait.

Da Entwicklerinnen und Entwickler für jedes Crate die jeweilige Edition festlegen, müssen sie keine Änderungen für älteren Code vornehmen, um ihn mit Sourcecode für die jüngste Edition zu verwenden. Unter der Haube erstellt der Compiler schließlich eine einheitliche interne Darstellung für gemischten Code.

Weitere Details zu den Plänen für Rust 2024 lassen sich dem Rust-Blog entnehmen. Die Diskussion findet über Zulip statt.

Siehe auch:

  • Rust: Download schnell und sicher von heise.de

(rme)