Select Page

Rust

by | Jun 16, 2016 | Programmiersprachen

Hallo zusammen,
heute mal kein Zwischenbericht zu meinem Praktikum, sondern etwas über die Programmiersprache Rust.
Erstmal, was ist Rust? 2009 begonnen als Hobbyprojekt des Mozilla Entwicklers Gradon Hoare, wurde Mai 2015 die erste stabile Version samt Compiler bereitgestellt.
Ziel ist es, eine Alternative zu low-level Sprachen wie C/ C++ zu bieten, die zudem den Komfort einer high-level Sprache wie Java oder C# besitzt. Dank direktem Hardwarezugriff, soll eine hohe Performance ermöglicht werden. Der mitgelieferte Rustic Compiler übersetzt direkt in Maschienencode, achtet jedoch während des des Kompiliervorgangs darauf, dass Speicherzugriffe nicht zu Sicherheitslücken führen. Dafür stellt man eine interne Zeigerverwaltung bereit (Pointer Ownership und Lifetime) und verzichtet auf einen laufzeitseitigen Garbadgecollector wie in Java und C# . Das kommt der Performance zugute und zudem muss man sich weniger Gedanken um die Speicherverwaltung, unter anderem auch bei Nebenläufigkeit, machen. Bei Bedarf ist es aber ebenso möglich reguläre C Pointer mit dem Schlüsselwort unsafe zu deklarieren.
Der Syntax erinnt an Python und C++. Wer erfahrung mit diesen Sprachen hat, sollte sich gut zurecht finden können. (Anm. ich selbst habe bislang noch keine Erfahrung mit Python gesammelt und verlasse mich hier auf die Meinung anderer Programmierer)
Hier etwas Beispielcode:

// Funktion, die ein Tupel zurückgibt
fn get_tuple() -> (i8,i8)
{
  let a = 4;
  let b = 2;
  // a und b zu Tupel zusammenfassen
  (a,b)
}
fn main()
{
  // pattern matching, um das Tupel wieder zu trennen
  let (x1, x2) = get_tuple();
  println!("x1: {}", x1);
  println!("x2: {}", x2);
  // Werte sind automatisch Konstanten
  let ro = 3;
  // Variable als veränderbar deklarieren
  let mut rw = 2;
  rw = 10; // zulässig
  // ro = 7; unzulässig,
}

Wer sich nun selbst an Rust versuchen will, findet hier die Dokumentation und einen Onlinecompiler
Nun aber zu der nicht unberechtigten Frage, was man sich von Rust erwarten kann.
Aktuell steht es in der Version 1.9 zum Download bereit, dahinter eine Community mit knapp 1200 Mitwirkenden. Jedoch fehlt es für eine weite Verbreitung noch an Bibliotheken. Das nächste größere Projekt ist Servo, Mozillas neue Firefox Engine. Der Benchmark eines Nightly Builds zeigt bereits eine top Performance. Jedoch bleibt das fertige Produkt abzuwarten, vorallem ob dieses neben performanten Rendern auch bei der Speichernutztung überzeugt. Stichwort Garbadge Collection. Wer bereits Waterfox (der 64Bit Build von Firefox) nutzte, hatte vielleicht auch schon das Erlebnis, dass sogar bei wenigen offenen Tabs, die  Speicherbelegung jenseits der 4GB lag.
Rust ist definitiv ein Projekt welches man im Auge behalten sollte.

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

More posts on the topic Programmiersprachen

Mein PHP-Trainingsprojekt

PHP Schulung Vor kurzem haben wir begonnen, eine neue Programmiersprache zu lernen – PHP. In der ersten Woche haben wir mit den Grundlagen wie Variablen, Arrays, Schleifen begonnen und uns schrittweise zu komplizierterer Syntax wie Funktionen, Objekten und Klassen...

check_prometheus ist jetzt öffentlich verfügbar!

Monitoring ist komplex, das wissen wir hier bei NETWAYS leider zu gut. Deswegen laufen in der Infrastruktur auch mal gerne mehrere Tools für die Überwachung. Zwei gern gesehene Kandidaten sind dabei Icinga und Prometheus. Icinga und Prometheus erfüllen...