Eigenschaften und Vorteile der Programmiersprache Rust

Lesedauer ca. 5 min

Die noch relativ neue Programmiersprache Rust hält seit 2016 den ersten Platz in der jährlichen Abstimmung über die beliebteste Programmiersprache auf der Plattform stackoverflow. Sie wird oft als besserer Ersatz für die hardwarenahe Sprache C gesehen, ist aber auch für größere anwendungsorientierte Projekte sehr gut geeignet.

Was sind die Rahmenbedingungen für Rust?
Eine stabile Version dieser Programmiersprache ist seit 2015 verfügbar. Nach Unsicherheit im Jahr 2020 über die weitere Finanzierung und Betreuung wurde im Februar 2021 eine Stiftung gegründet, die sich um die Weiterentwicklung von Rust kümmern wird. Diese Stiftung wird von den Unternehmen Amazon Web Services, Alphabet, Huawei, Microsoft sowie von der Mozilla Foundation getragen.
Auf der einen Seite sollte Rust wie C für die Programmierung von Betriebssystemen geeignet sein. Für solche Zwecke wird sie auch eingesetzt und zwar beispielsweise im Projekt Redox-OS. In diesem Bereich steht geringe Fehleranfälligkeit im Vordergrund der Anforderungen. Andererseits sollte die Einsatzfähigkeit von Rust als Systemprogrammiersprache Sie als Programmierer nicht mit für Anwendungen unnötigen Details belasten.
Als Evidenz für diese Benutzerfreundlichkeit lässt sich darauf verweisen, dass Rust auf unixoiden Systemen mit nur einer Zeile von bash-Instruktionen installiert werden kann.

Eigenschaften von Rust
Die Sprache ist von mehreren Programmierparadigmen geprägt. Dazu gehören prozedurale und objektorientierte Aspekte. Syntaktisch ähnelt Rust der Sprache C++.
Als wichtigste Besonderheit der Sprache sehen die Entwickler das Konzept des Ownership. Es dient der Speichersicherheit anstelle eines Garbage Collectors, der sonst für die Freigabe nicht mehr benötigten Speicherplatzes eingesetzt wird. Die Idee erfordert für ein vollständiges Verständnis etwas Erfahrung mit einigen Beispielen. Grob gesprochen dreht sich dieser Zugang zur Speicherverwaltung darum, dass jeder Wert eine einzige ihm zugeordnete Variable besitzt oder von ihr als Owner besessen wird. Der Wert mit seinem Speicherplatz wird freigegeben, wenn der Owner nicht mehr gültig ist. Diese Funktionalität wird ausschließlich bei der Kompilierung ausgeführt und verbraucht deshalb keine Rechenleistung bei der Ausführung eines Programms.

Vorteile
- Die Sprache ermöglicht leistungsfähiges Progammieren in zwei Bedeutungen des Wortes. Die Programme werden schnell und mit wenig erforderlichem Speicherplatz abgearbeitet. Damit können Sie mit Rust auch für kleine Computer programmieren. Leistungsfähig ist Rust aber auch in dem Sinn, dass das Schreiben der Programme nicht viel Zeit erfordert und damit effizient ist.
- Sicherheit wird bei Rust groß geschrieben. Gestützt wird diese Eigenschaft durch eine starke Typisierung und das bereits erwähnte Ownership-Modell.
Speichersicherheit ist wichtig, um Überläufe und damit Bugs und Sicherheitslücken zu verhindern. Im Gegensatz zur Situation der Sprache C erkennt der Rust-Compiler solche Fehler. Dasselbe gilt für die Thread-Sicherheit. Sie bezieht sich auf das sichere nebenläufige Abarbeiten verschiedener Threads ohne Wettlaufrisiken, die sonst schwer zu findende Programmierfehler darstellen.

Anwendungen in der Systemprogrammierung
Programmiersprachen für Systemprogramme sollen die Speicherverwaltung, parallele Abläufe und die Darstellung von Daten besonders unterstützen. In bisher verfügbaren solchen Sprachen war diese Art der Programmierung aufwendig und Fehler waren nur mit einiger Erfahrung mit Feinheiten vermeidbar.
Mit Rust werden Ihnen als Systemprogrammierer Werkzeuge für den Zugang zu elementaren Funktionen zur Verfügung gestellt. Der Compiler erkennt die sich bei solchen Programmen oft einschleichenden Fehler, insbesondere bei parallelen Abläufen. Aus diesem Grund ist die Sprache besonders auch für Studenten von Betriebssystemkonzepten geeignet.

Rust für Softwareprogrammierung von Anwendungen
Bis zur Entwicklung dieser Sprache wurde es oft als unvermeidlich angesehen, dass sich Verwendungsfähigkeit für Systemprogramme und Anwenderfreundlichkeit gegenseitig ausschließen. Als Grund wäre wohl angegeben worden, dass der Zugang zu Systemdetails Komplikationen mit sich bringt, die dann bei anderen Anwendungen in den Griff zu bekommen sind.
Die Entwickler von Rust nehmen die Haltung ein, dass dieser Gegensatz auflösbar ist. Sicherheit wird mit Produktivität kombiniert und ergibt eine Sprache, die effizient und auch beschränkt auf hochsprachliche Konstruktionen in einem Softwareprojekt verwendbar ist.

Dokumentation
Die beste Programmiersprache wird nicht verwendet, wenn Sie als Programmierer keine gut verwendbare Dokumentation zur Verfügung gestellt bekommen. Auch in diesem Bereich kann Rust überzeugen.
Neben der Webseite selbst als erste Darstellung ist eine systematische Einführung in die Sprache online verfügbar, die bei No Starch Press in gedruckter Form und als e-book erhältlich ist. Den Entwicklern von Rust ist aber auch klar, dass viele Programmierer einen anderen Stil einer Einführung bevorzugen. Gehören Sie zu den Entwicklern, die neue Konzepte und eine neue Sprache am liebsten über viele Beispiele grokken? Auch dieser Stil der Aufnahme wird Ihnen mit einer entsprechenden Sammlung angeboten. Als weitere Alternative ist eine Einführung zum Schreiben von Rust im CLI verfügbar.
Eine so flexible Sprache wird aber natürlich in verschiedenen Anwendungsbereichen auf sehr unterschiedliche Weise eingesetzt. Deshalb ist eine eigene Dokumentation für die Kommandozeile, die Erstellung von Webapplikationen, Netzwerkanwendungen und eingebettete Systeme verfügbar.

Werkzeuge für Entwickler
Für eine schnelle Erstellung von Code in einem Softwareprojekt und für das Erlernen einer Sprache geht es nicht nur um die Eigenschaften der Programmiersprache selbst, sondern auch um die verfügbaren Dienstprogramme und Werkzeuge für die Softwareprogrammierung.
Zum Ausprobieren und Lernen steht auf der Webseite der Sprache ein Playground zur Verfügung, in dem Sie Programmtext ausführen lassen können. Für das Erstellen des Programmtexts können Sie sich mit hoher Wahrscheinlichkeit auf den von Ihnen bevorzugten Editor stützen, denn zahlreiche Editoren werden von Rust unterstützt. Das bedeutet auch, dass in diesen Editoren syntaktische Tools zur Verfügung stehen, die auf die Eigenschaften von Rust angepasst sind und durch Einrücken und aussagekräftige Farbcodes die Lesbarkeit Ihres Programmcodes entscheidend verbessern.
Dazu kommt, dass der Compiler bei Fehlern die Verarbeitung nicht einfach abbricht, sondern Sie mit nützlichen Fehlermeldungen bei der Behebung der noch vorhandenen Bugs unterstützt.
Mit Cargo wird Ihnen ein auf die Sprache angepasster Paketmanager zur Verfügung gestellt, in dem die Versionskontrolle Git integriert ist. Der Paketmanager verwaltet auch die Bibliotheken, von denen Ihr Code abhängig ist.

Wenn Sie sich an den vordersten Rand der Entwicklung begeben möchten
Die Sprache wird ständig weiterentwickelt und neben stabilen neuen Versionen gibt es auch die sprichwörtlichen nightly builds, mit denen Sie experimentieren können.
Detaillierter als das Buch ist das ebenfalls online verfügbare Referenzdokument, in dem Sie feine Details klären können.
Die Entwickler von Rust sind mit Recht auf die Fehlerresistenz und Sicherheit ihres Endproduktes stolz. Für manche Anwendungen sind aber auch bewusst unsichere Funktionen zumindest ein Vorteil, wenn sie nicht sogar notwendig sind. Das Rustonomicon ist der Text, der Ihnen online den Hintergrund zu den unsicheren Funktionen bietet.
Auch für die noch nicht stabilen Versionen wird Ihnen eine Dokumentation angeboten, die Ihnen bei Ihren Experimenten mit den neuesten Versionen behilflich sein kann.

Fazit
Rust hat nicht umsonst für mehrere Jahre den Spitzenplatz auf der Liste der beliebtesten Programmiersprachen gehalten. Es besticht mit einer Eignung sowohl für System- als auch für Anwendungsprogrammierung, die bisher in dieser Form nicht verfügbar war. Das zentrale Konzept der Ownership wird schon im vierten Kapitel des Einführungstextes behandelt. Soweit kommen Sie schon mit geringem Aufwand, der sich für das Kennenlernen von Rust bezahlt machen wird.

Möchten sie mehr über den praktischen Einsatz erfahren ? Wir freuen uns über ihre Nachricht

Zurück