Analyse

Hohe Performance, gute Fehlerprüfung: Darum ist Rust so beliebt

(Bild: Ensuper/Shutterstock)

Lesezeit: 3 Min. Gerade keine Zeit? Jetzt speichern und später lesen

Rust belegt seit einigen Jahren stets die obersten Ränge in den Listen der am schnellsten wachsenden Programmiersprachen auf GitHub und Stackoverflow. Für diese Beliebtheit gibt es gute Gründe.

Rust gibt es seit 2006. Die Programmiersprache entstammt den Tasten eines Mozilla-Entwicklers. Seit ihrem Launch wächst die Nutzerbasis der Sprache – mittlerweile findet sie Anwendung beim Bauen von Webanwendungen, Command-Line-Tools oder verteilten Services.

Low-Level-Sprache mit Abstraktionen von Higher-Level-Sprachen

Die Low-Level-Sprache Rust ist so effizient, dass sie ohne automatische Speicherbereinigung auskommt. Dennoch bietet sie die Performance von C und C++, allerdings ohne die Stolperfallen, die Entwickler bei der Arbeit kennen und beachten müssen.

Die Entwickler hinter Rust wollten eine Sprache kreieren, mit der Systemprogrammierung sicherer und Nebenläufigkeit, also die gleichzeitige Ausführung mehrerer Berechnungen, Anweisungen oder Befehle, einfacher wird. Sowohl Speichersicherheits- als auch Nebenläufigkeitsfehler entstehen, wenn Code auf Daten zugreift, auf die er zum jeweiligen Zeitpunkt nicht zugreifen soll.

Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Das zentrale Konzept: Ownership

Das erreicht Rust über sein zentrales Feature, die sogenannte Ownership. Wer mit Rust arbeitet, muss sich darum allerdings nicht selber kümmern, der Rust-Compiler checkt das statisch für euch. Das ist auch der Grund, warum Rust ohne Garbage-Collector (automatische Speicherbereinigung) auskommt und ihr euch über Speicherzugriffsfehler – anders als zum Beispiel in C – keine Sorgen machen müsst. Bezogen auf das Konzept der Nebenläufigkeit bedeutet das, dass ihr nach verschiedensten Paradigmen arbeiten könnt. Message-Passing, geteilter State, Lock-Free- oder auch komplett funktionale Programmierung sind in Rust möglich. Das Design der Programmiersprache hilft euch dabei, gängige Fehlerquellen zu vermeiden.

Nebenläufigkeit in Rust

Werden Messages entlang eines Channels versandt, wird deren Ownership mit transferiert. Das ermöglicht es, einen Pointer von einem zum anderen Thread zu schicken, ohne befürchten zu müssen, dass die Threads später versuchen, über diesen Pointer auf den Speicher zuzugreifen. Die Channels in Rust forcieren isolierte Threads. Ein Lock weiß, welche Daten es schützt. Die Datentypen in Rust wissen, ob sie zwischen mehreren Threads verschickt werden dürfen und ob mehrere Threads sicher auf sie zugreifen können – Rusts Design erzwingt diese sichere Nutzung. Ihr könnt sogar Stack-Frames zwischen Threads teilen – Rust sorgt dafür, dass die Frames aktiv bleiben, während andere Threads auf sie zugreifen. Alle diese Benefits gehen auf Rusts Ownership-Modell zurück. Locks, Channels und Datenstrukturen ohne Lock sind übrigens außerhalb der Kernsprache in Bibliotheken definiert.

Fokus auf Sicherheit

Der Rust-Compiler ist strikter und bietet sichere Speicherverwaltung ohne Runtime-Overhead. Generell hat Rusts Lifetime-Management einen starken Fokus auf Sicherheit: Die Thread-Safety in Rust ist aus genannten Gründen im Vergleich zu anderen Sprachen deutlich höher. Dem Sicherheitsgedanken tragen auch Features wie Sum-Types und die generelle Unveränderlichkeit der Sprache Rechnung.

Interessante Features und nützliche Bibliotheken

Die Sprache bietet so interessante Features wie Cross-Compilation, Web-Assembly-Targets für die Frontend-Entwicklung, Unterstützung für die Entwicklung mobiler Anwendungen und mittlerweile einige nützliche Libraries. Rust-Code ist – im Vergleich zu Code in C++ – relativ einfach zu lesen. Die Sprache verfügt über funktionale Features wie map(), find() oder filter(). Rust ist eine Programmiersprache mit imperativer Syntax. Higher-Order-Funktionen könnt ihr trotzdem definieren.

TL;DR: Wer mit Rust arbeitet, ist gezwungen, sich über Speicherbelegung Gedanken zu machen. Smart Pointer und Referenzen sind quasi die Basis von Rusts Speichermanagement. Wer von C++ kommt, dürfte sich hier relativ schnell einarbeiten können. Wer von Python oder JavaScript kommt, braucht wahrscheinlich etwas länger, um mit den Konzepten vertraut zu werden. Der daraus resultierende Code ist quasi „clean by default“. Was den Speicher angeht, habt ihr mit Rust sehr genaue Kontrollmöglichkeiten – bei mehr Sicherheit im Vergleich zu Sprachen wie zum Beispiel C.

Mehr zum Thema: 

Meistgelesen

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

3 Kommentare
Peter
Peter

Finde die breite Nutzungsmöglichkeiten gut, so wird ja z.B. Fuchsia als Betriebssystem in Rust geschrieben, genauso können Rust-programme als webassembly erzeugt werden, so dass fast jeder Browser die Programme nativ ausführen kann.

Antworten
Rolf Gilbert, GBS-aktive-Selbsthilfe
Rolf Gilbert, GBS-aktive-Selbsthilfe

Guten Abend,
ich bin Laie und wage die Frage ob in PP erstellte Daten und Entwürfe in eine Homepage übertragen werden könnten. Kurze Antwort mit JA oder NEIN wäre ok.
Danke im Voraus.

Antworten
Dieter Petereit

Ja, hat aber nichts mit Rust zu tun.

Antworten

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!

Hey du! Schön, dass du hier bist. 😊

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team bestehend aus 70 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Danke für deine Unterstützung.

Digitales High Five,
Luca Caracciolo (Chefredakteur t3n) & das gesamte t3n-Team

Anleitung zur Deaktivierung