zurück zum Artikel

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

Silke Hahn
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.

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 [1] 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 [2]. 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 [3]. 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 [4] ist (auf GitHub gibt es ein Übersetzungsprojekt).

Der Mozilla-Mitarbeiter Jan-Erik Rediger erzĂ€hlte heise Developer 2019 in einem Interview [5], 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 [6] 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 [7].

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


URL dieses Artikels:
https://www.heise.de/-4722171

Links in diesem Artikel:
[1] https://www.heise.de/hintergrund/Graydon-Hoare-im-Interview-zur-Programmiersprache-Rust-1916345.html
[2] https://www.heise.de/developer/artikel/Rust-als-sichere-Programmiersprache-fuer-systemnahe-und-parallele-Software-4155591.html?seite=2
[3] https://www.heise.de/news/Rust-Survey-2019-Rust-Nutzer-wollen-besser-abgeholt-werden-4707524.html
[4] https://github.com/rust-lang/book/issues?q=is%3Aopen+is%3Aissue+label%3ATranslations
[5] https://www.heise.de/hintergrund/Jan-Erik-Rediger-Entwickler-aus-allen-Programmiersprachen-kommen-zu-Rust-4440960.html
[6] https://www.heise.de/news/Experimente-mit-Rust-Microsoft-praesentiert-Public-Preview-von-Rust-WinRT-4713621.html
[7] https://www.heise.de/news/Programmiersprache-Kernentwickler-von-Rust-schlaegt-eine-Foundation-vor-4632864.html
[8] https://www.heise.de/hintergrund/Graydon-Hoare-im-Interview-zur-Programmiersprache-Rust-1916345.html
[9] https://www.heise.de/hintergrund/Task-und-Datenparallelitaet-mit-Rust-4452915.html
[10] https://blog.rust-lang.org/2020/05/15/five-years-of-rust.html
[11] mailto:sih@ix.de