Happy Birthday, Rust! Die Programmiersprache wird fünf Jahre jung

Vor fünf Jahren erreichte der C/C++-Herausforderer Rust die Version 1.0. Zum Jubiläum ein Überblick zur Entwicklung von Rust.

In Pocket speichern vorlesen Druckansicht 136 Kommentare lesen
Happy Birthday, Rust! Die Programmiersprache wird fünf Jahre jung
Lesezeit: 4 Min.
Von
  • Silke Hahn
Inhaltsverzeichnis

Vor genau fünf Jahren erschien die erste stabile Version von Rust, einer noch jungen, 2010 vorgestellten Programmiersprache. Ursprünglich war sie das persönliche Projekt eines einzelnen Mozilla-Mitarbeiters, Graydon Hoare. Die Weiterentwicklung betreibt mittlerweile vor allem die Forschungsabteilung von Mozilla, einige Komponenten des Firefox-Browsers sind in Rust programmiert.

Allerdings bekunden inzwischen auch Unternehmen wie Microsoft größeres Interesse an der Programmiersprache, die mitunter als mögliche Alternative zu C/C++ gehandelt wird. Auch die Gründung einer Rust Foundation brachte unlängst ein Kernentwickler von Mozilla ins Gespräch.

Laut Graydon Hoare, dem Erfinder von Rust, war die Motivation zum Entwickeln von Rust "Unzufriedenheit mit den Kompromissen, die man beim Schreiben in C++ eingehen muss". In einem Interview erklärte er 2013 gegenüber heise Developer "Speichersicherheit" zur größten Stärke von Rust.

Rust verfolgt das Ziel, verschiedene Programmierparadigmen wie den funktionalen und objektorientierten Ansatz zu vereinen. Dabei soll die Sprache so effizient sein wie C/C++ und so sicher wie eine Interpreter-Sprache. Ein sicherer Umgang mit dem Speicher und die Vermeidung von Race Conditions (Wettlauf-Bedingungen) sind ihr Alleinstellungsmerkmal. Die Garbage Collection entfällt bei Rust – für viele Entwickler ist das zunächst ungewohnt, allerdings soll es der Effizienz zugutekommen.

Rust kann den Code von C und allen mit C kompatiblen Programmiersprachen einbinden. Allerdings stellt C aus Sicht der Rust-Entwickler eine unsichere Sprache dar, daher sind in Rust C-Funktionsaufrufe nur in "unsafe-Blöcken" zugelassen. Speicherprobleme bleiben bei Rust dann auf den verwendeten Block begrenzt, und der Rust-Compiler garantiert, dass das Problem nirgends sonst auftritt. Die Fehlersuche beschränkt sich damit auf wenige Zeilen Code.

Das Speichermodell von Rust bestimmt bereits zur Kompilierzeit, welche Speicherbereiche nicht länger benötigt werden, und gibt diese unmittelbar frei (bei vielen anderen Programmiersprachen geschieht das zur Laufzeit). Dahinter steht das Konzept der Ownership und des Borrowing, das vermutlich den größten Unterschied zu C/C++ darstellt. Anders als bei vielen Programmiersprachen sind bei Rust standardmäßig alle Variablen konstant, und nur der aktuelle "Besitzer" darf ein Objekt "verleihen".

Der Vorteil ist dabei, dass die Speicherverwaltung als sehr sicher gilt, besonders bei nebenläufigen Anwendungen. Allerdings stellt das Konzept für Einsteiger in Rust auch eine gewisse Hürde dar, da es ein grundlegendes Umdenken erfordert und die Art des Programmierens teils massiv verändert. Manche Vorgänge mit verketteten Listen, die mehrere Besitzer kennen, wirken in Rust sehr kompliziert und lassen sich nur schwer umsetzen.

Anfänger kann das zunächst verwirren und entmutigen – Rust hat den Ruf einer besonders steilen Lernkurve, wie unlängst eine Umfrage unter Rust-Entwicklern bestätigt hat. So bemängelt die Community der an Rust Interessierten, dass es an der Dokumentation hapere. Mehr stabile Librarys und besserer Support stehen offenbar ganz oben auf dem Wunschzettel.

Online-Angebote wie Blogs und Tutorials zum selbstständigen Erlernen und Vertiefen von Rust ab dem mittleren Niveau seien laut der Befragten (noch) Mangelware. Immerhin gibt es Hinweise, dass die Dokumentation zu Rust nun auch in weiteren Sprachen in Arbeit ist (auf GitHub gibt es ein Übersetzungsprojekt).

Der Mozilla-Mitarbeiter Jan-Erik Rediger erzählte heise Developer 2019 in einem Interview, dass größere Firmen ein Auge auf Rust werfen. Microsoft hatte dabei damals (zumindest offiziell) noch niemand auf dem Schirm. Das Redmonder Unternehmen stellte Anfang Mai das Projekt einer neuen Windows-Runtime in Rust vor, die analog zur C++/WinRT funktionieren solle. Microsoft reiht sich damit offiziell in die Liste derer ein, die Rust als Alternative zu C++ in Erwägung ziehen. Unlängst schlug ein Kernentwickler der Programmiersprache die Gründung einer Foundation für Rust vor.

Weitere Ressourcen und Informationen zu Rust stehen bei heise Developer bereit, so auch das vollständige Interview mit Graydon Hoare zum Nachlesen. Zur Vertiefung bietet sich ein Artikel über Task- und Datenparallelisierung mit Rust an. Auch das Rust-Core-Team hat im Rust-Blog einen Geburtstagsbeitrag verfasst, der die Geschichte der Programmiersprache in Entwicklungsschritten darstellt. (sih)