Die dunkle Seite von Rust

Zusätzlich zum eigentlichen Rust, "Safe Rust", existiert auch noch eine "Unsafe Rust"-Umgebung, eingeleitet durch das Schlüsselwort "unsafe". In dieser Umgebung sind einige Regeln aufgehoben und es können potenziell unsichere Speicherzugriffe durchgeführt werden.

Die wichtigste Möglichkeit, die sich dadurch ergibt, ist, andere unsichere Funktionen aufzurufen. Funktionen aus C-Bibliotheken sind in Rust per Definition immer "unsafe", weil deren Speicherverwaltung nicht vom Rust-Compiler kontrolliert werden kann. Außerdem ist es nur in der Unsafe-Umgebung möglich, Raw-Pointer, also echte Zeiger wie in C, zu dereferenzieren. Erst diese Fähigkeit ermöglicht es in Rust, etwa Gerätetreiber und Kernel zu schreiben, da von der Hardware oft Raw-Pointer als Zeiger auf Daten geliefert werden. Auch hier besteht wieder das Risiko von Zugriffen auf undefinierte Speicherbereiche etwa durch fehlerhafte oder falsch konfigurierte Hardware und Programmierfehler.

Für die meisten Anwendungen sollten allerdings die Möglichkeiten von Rust ohne Risiken von "unsafe" ausreichen. Für alle anderen Fälle gilt es, die Dokumentation für unsafe sehr genau zu studieren. Ebenfalls lesenswert ist das Rustonomicon, das sich hauptsächlich mit den fortgeschrittenen Möglichkeiten von Rust beschäftigt.

Dinge, die das Programmieren einfacher machen

Rust bringt mit "rustdoc" eine praktische Möglichkeit, den geschriebenen Code direkt zur Dokumentation zu verwenden. Dieses Feature wird allerdings von anderen Programmiersprachen wie Java und C# ebenfalls geboten.

Ein weiteres wichtiges Kriterium, um eine Programmiersprache in einem Projekt einzusetzen, ist die Verfügbarkeit von Bibliotheken. In diesem Punkt muss Rust derzeit noch passen. Sie bietet zwar eine umfangreiche Standardbibliothek und kann auf C-Bibliotheken zurückgreifen, richtige Rust-Bibliotheken mit ihren Vorteilen findet man derzeit aber noch selten. Abhilfe schaffen in diesem Fall Sprachanbindungen wie etwa für Python, womit sich Funktionen aus anderen Sprachen verwenden lassen.

Da Rust als Programmiersprache auf Systemebene entwickelt wurde, ist die Sprache sehr auf Portabilität ausgerichtet. Beispielsweise gibt es Anstrengungen, um Rust auf dem AVR-Mikrocontroller des Arduino lauffähig zu machen. Dabei kann dann allerdings nicht auf die Rust-Standardbibliothek zurückgegriffen werden, da ein Großteil dieser ein Betriebssystem voraussetzt.

Rust ist definitiv eine Alternative zu C/C++. Es wurde von Anfang an mit dem Ziel entwickelt, die typischen Fehler in der Speicherverwaltung von C/C++ zu vermeiden und ist dabei ebenfalls sehr portabel. Wie bei jeder jungen Programmiersprache muss sich jedoch erst ein größeres Ökosystem aus Bibliotheken und Tools aufbauen, damit die Sprache langfristig bestehen kann. Die bisherige Entwicklung hin zu mehr Fehlervermeidung schon in der Programmiersprache kann allerdings nur befürwortet werden und hat durch Rust definitiv einen Entwicklungsschub bekommen.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Syntax und Programmierstil
  1.  
  2. 1
  3. 2
  4. 3


schnedan 06. Feb 2022

Was soll die Negierung hinter println, und bez. Ausgaben war C++ mit Streams schon vor...

sambache 21. Dez 2016

Au, das tut wirklich weh :-(

Bachsau 23. Jun 2016

Ein weiteres mal, dass deutlich darauf hingewiesen werden muss, dass JavaScript und Java...

zZz 23. Jun 2016

Ich erinnere mich an einen Artikel (Wired?), in dem die Dropbox-Macher ihre Entscheidung...



Aktuell auf der Startseite von Golem.de
Google Street View
Deutschland bekommt keine Möglichkeit zur Zeitreise

Mit der überfälligen Aktualisierung verliert Street View auch das alte Bildmaterial - und das hat nicht nur mit Datenschutz zu tun.
Von Daniel Ziegener

Google Street View: Deutschland bekommt keine Möglichkeit zur Zeitreise
Artikel
  1. Technische Schulden: Was Accidental Complexity in der Entwicklung kostet
    Technische Schulden
    Was Accidental Complexity in der Entwicklung kostet

    Anfangs setzen IT-Teams schnell neue Features um, dann wird die Entwicklungszeit meist länger. Accidental Complexity ist häufig die Ursache - wir erklären, wie sie entsteht und was sich dagegen tun lässt.
    Von Marcus Held

  2. Schifffahrt: Hurtigruten plant Elektroschiff mit Segeln und Solarmodulen
    Schifffahrt
    Hurtigruten plant Elektroschiff mit Segeln und Solarmodulen

    Die norwegische Postschiff-Reederei will 2030 das erste Schiff in Betrieb nehmen, das elektrisch und vom Wind angetrieben wird.

  3. Saporischschja: AKW ist nach Staudammzerstörung mittelfristig in Gefahr
    Saporischschja
    AKW ist nach Staudammzerstörung mittelfristig in Gefahr

    Ein Experte für Reaktorsicherheit befürchtet, dass dem Atomkraftwerk Saporischschja das Kühlwasser ausgeht.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    • Daily Deals • XXL-Sale bei Alternate • MindStar: MSI G281UVDE 269€, ASRock RX 6700 XT Phantom D OC 379€, XFX Speedster MERC 319 RX 6800 XT Core 559€ • Corsair Vengeance RGB PRO SL DDR4-3600 32 GB 79,90€ • Corsair K70 RGB PRO 125,75€ • SHARP 65FN6E Android Frameless TV 559,20€ [Werbung]
    •  /