Rust: Junger C/C++-Herausforderer mit abwechslungsreicher Geschichte

Rust ist eine noch junge systemnahe Programmiersprache, entwickelt und finanziert von Mozilla. Nach etwas mehr als fünf Jahren Entwicklung erscheint das Geisteskind von Graydon Hoare endlich in Version 1.0.0.

In Pocket speichern vorlesen Druckansicht 3 Kommentare lesen
Lesezeit: 19 Min.
Von
  • Florian Gilcher
  • Johann Hofmann
Inhaltsverzeichnis

Rust ist eine noch junge systemnahe Programmiersprache, entwickelt und finanziert von Mozilla. Nach etwas mehr als fünf Jahren Entwicklung erscheint das Geisteskind von Graydon Hoare endlich in Version 1.0.0.

Seit der initialen Schöpfung hat das Projekt mehrfach das Team und die Ausrichtung gewechselt, aber inzwischen seine Nische gefunden. War die Sprache zuerst zur verteilten Programmierung gedacht, hat sie sich inzwischen weit davon entfernt und tritt eher als moderner C/C++-Ersatz an. Der Fokus auf parallele Programmierung und einem dazu geeigneten, auf "unique pointers" basierenden Typsystem ist jedoch geblieben. Die Sprache versucht den Spagat zwischen maschinennaher Programmierung und leistungsfähigen Abstraktionen.

Der Name Rust stammt interessanterweise nicht etwa von Rost, sondern von einer besonderen Pilzsorte.

Auf der Rust-Website finden sich stets die neuesten Installer für verschiedene Plattformen. Zusammen mit dem Compiler wird Cargo ausgeliefert, ein Build- und Paketmanagement-Tool ähnlich Bundler aus der Ruby-Welt. Einmal installiert, ist ein neues Rust-Projekt schnell aufgesetzt:

$ cargo new --bin example

Das Kommando generiert folgende Dateistruktur:

~/example$ tree --charset=ascii
.
|-- Cargo.toml
'-- src
'-- main.rs

Die Datei Cargo.toml beschreibt alle Abhängigkeiten und konfiguriert die Build-Schritte. main.rs ist nach Konvention die Hauptdatei für ausführbare Programme – das Resultat wird den Projektnamen example tragen. Diese Einstellungen lassen sich aber in Cargo.toml ändern. Ein Blick in main.rs zeigt, dass Cargo sogar schon das obligatorische "Hello World"-Beispiel generiert hat:

fn main() {
println!("Hello World!")
}

Zum Kompilieren benutzt man den Befehl build:

$ cargo build

und zum Ausführen run:

$ cargo run
Hello World!

oder ruft das erstellte Binary direkt auf:

$ target/debug/example

Zum Kompilieren mit Optimierungen:

$ cargo build --release

Diese sollten auf keinen Fall ausgelassen werden.

Das Setup lässt sich verwenden, um kleine Programme zu schreiben und Rust auszuprobieren.