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.
Eine eierlegende Wollmilchsau unter den Programmiersprachen?
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.
Rust ist speichersicher und braucht keine MĂŒllabfuhr ...
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.
... hat aber eine steile Lernkurve
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).
Trend Richtung GrĂŒndung einer Rust Foundation
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
Copyright © 2020 Heise Medien