Abo
  • Services:
Anzeige
Rust ist nach den Pflanzenparasiten der Rostpilze benannt.
Rust ist nach den Pflanzenparasiten der Rostpilze benannt. (Bild: Martin Wolf/Golem.de)

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.

Anzeige

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.

 Syntax und Programmierstil

eye home zur Startseite
sambache 21. Dez 2016

Au, das tut wirklich weh :-(

olleIcke 05. Jul 2016

Versteh ich auch nicht. Ich sehe durchaus, dass das Interesse riesig is! Nörgler mit so...

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

Baron Münchhausen. 21. Jun 2016

Genau! Ich will, dass mein Programm einfach das Wasser auf den Herd stellt, wenn ich es...



Anzeige

Stellenmarkt
  1. aia automations Institut GmbH, Amberg
  2. echion Corporate Communication AG, Augsburg
  3. symmedia GmbH, Bielefeld
  4. über Nash Direct GmbH, Böblingen


Anzeige
Hardware-Angebote
  1. 89,90€ + 3,99€ Versand (Vergleichspreis ca. 140€)
  2. und Destiny 2 gratis erhalten

Folgen Sie uns
       


  1. Tele Columbus

    1 GBit würden "gegenwärtig nur die Nerds buchen"

  2. Systemkamera

    Leica CL verbindet Retro-Design mit neuester Technik

  3. Android

    Google bekommt Standortdaten auch ohne GPS-Aktivierung

  4. Kabelnetz

    Primacom darf Kundendaten nicht weitergeben

  5. SX-10 Aurora Tsubasa

    NECs Beschleuniger nutzt sechs HBM2-Stacks

  6. Virtual Reality

    Huawei und TPCast wollen VR mit 5G streamen

  7. Wayland-Desktop

    Nvidia bittet um Mitarbeit an Linux-Speicher-API

  8. Kabelnetz

    Vodafone liefert Kabelradio-Receiver mit Analogabschaltung

  9. Einigung erzielt

    EU verbietet Geoblocking im Online-Handel

  10. Unitymedia

    Discounter Eazy kommt technisch nicht an das TV-Kabelnetz



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Fire TV (2017) im Test: Das Streaminggerät, das kaum einer braucht
Fire TV (2017) im Test
Das Streaminggerät, das kaum einer braucht
  1. Neuer Fire TV Amazons Streaming-Gerät bietet HDR für 80 Euro
  2. Streaming Update für Fire TV bringt Lupenfunktion
  3. Streaming Amazon will Fire TV und Echo Dot vereinen

Universal Paperclips: Mit ein paar Sexdezillionen Büroklammern die Welt erobern
Universal Paperclips
Mit ein paar Sexdezillionen Büroklammern die Welt erobern
  1. Disney Marvel Heroes wird geschlossen
  2. Starcraft 2 Blizzard lästert über Pay-to-Win in Star Wars Battlefront 2
  3. Free to Play World of Tanks bringt pro Nutzer und Monat 3,30 Dollar ein

Smartphoneversicherungen im Überblick: Teuer und meistens überflüssig
Smartphoneversicherungen im Überblick
Teuer und meistens überflüssig
  1. Winphone 5.0 Trekstor will es nochmal mit Windows 10 Mobile versuchen
  2. Librem 5 Das freie Linux-Smartphone ist finanziert
  3. Aquaris-V- und U2-Reihe BQ stellt neue Smartphones ab 180 Euro vor

  1. Ich will auch keine 200MBits von denen, ...

    Schnurrbernd | 22:30

  2. Re: BQ Aquaris X Pro mit 128GB/4GB schon für 415 ¤

    cellPro | 22:30

  3. Re: Ist doch alles "kostenlos"

    logged_in | 22:29

  4. Re: Init7: 777/y

    SJ | 22:27

  5. Re: Init7 - günstiger

    SJ | 22:26


  1. 20:00

  2. 18:28

  3. 18:19

  4. 17:51

  5. 16:55

  6. 16:06

  7. 15:51

  8. 14:14


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel