In Rust wurde ein „experimenteller“ Garbage Collector eingeführt: Die Community ist schockiert über die Entscheidung von Mozilla

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Der neue Rust-Standard erhielt eine unerwartete Funktion: Garbage Collector

Gestern, am 14. Oktober 2021, stellte das Entwicklungsteam der Sprache Rust ein Update des Standards vor — Rust 2021 Edition. Die größte Sensation war jedoch nicht die lang erwartete Verbesserung des Ownership-Systems, sondern die überraschende Aufnahme eines experimentellen Garbage Collectors (GC). Die Entscheidung löste eine heftige Reaktion in der Community aus: Viele Entwickler bezeichneten dies als „Verrat an der Sprachphilosophie".

Laut dem offiziellen Rust-Blog trägt die neue Funktion den Namen „Rust GC Preview". Sie ist in Nightly-Builds unter dem Flag #![feature(rustc_gc)] verfügbar. Die Spezifikation geht davon aus, dass der Garbage Collector nur in einem eingeschränkten Modus arbeitet — für Typen, die mit dem Trait Gc markiert sind. „Wir geben das Ownership-Modell nicht auf", erklärte Carol Nichols, leitende Rust-Entwicklerin bei Mozilla. „GC ist eine Option für Prototyping und Szenarien, in denen Speichersicherheit nicht kritisch ist, zum Beispiel für Single-Thread-Skripte."

Laut dem Repository rust-lang/rust wurden im Commit #89765 etwa 12.000 Zeilen Code hinzugefügt, die einen grundlegenden Tracing-Garbage Collector implementieren. Die Leistung liegt laut ersten Tests in den Standard-Benchmarks (benchmark suite) um 40 % niedriger als bei manueller Speicherverwaltung. Bei Code mit intensiver Nutzung dynamischer Datenstrukturen (z. B. Graphen oder Bäume) kann die Entwicklungsgeschwindigkeit jedoch erheblich steigen.

Experten sind gespalten. Jonathan Turner, Autor des Buches „Rust in Action", schrieb auf Twitter: „Das ist entweder ein genialer Schachzug, um Python-Entwickler anzuziehen, oder ein fataler Fehler. Rust war schon immer derjenige, der keine Kompromisse eingeht." Gleichzeitig betonten Vertreter von Amazon (einem aktiven Rust-Nutzer): „Wir begrüßen alle Experimente, aber in Production-Systemen wird GC in den nächsten 2-3 Jahren nicht auftauchen."

Es ist erwähnenswert, dass Rust im Jahr 2021 bereits zu den Top-10-Sprachen laut TIOBE gehörte und seine Integration in den Linux-Kernel (Projekt Rust for Linux) gerade erst begann. Die neue Funktion könnte sowohl die Akzeptanz der Sprache in der Webentwicklung beschleunigen als auch Systemprogrammierer abschrecken.

Der vollständige Text von RFC #3127 ist auf GitHub verfügbar. Die Veröffentlichung einer stabilen Version mit GC wird nicht vor 2023 erwartet.

Empfohlene Bibliotheken