Vorwort

Es war nicht immer so klar, aber bei der Programmiersprache Rust geht es im Grunde um Befähigung: Egal, welche Art von Code du jetzt schreibst, Rust befähigt dich dazu, weiter zu gehen, mit Vertrauen in einer größeren Vielfalt von Bereichen zu programmieren, als du es zuvor getan hast.

Denken wir zum Beispiel an systemnahe Arbeiten, bei denen Details wie Speicherverwaltung, Datenrepräsentation und Nebenläufigkeit wichtig sind. Traditionellerweise gilt dieser Bereich der Programmierung als geheimnisvoll und nur wenigen Auserwählten zugänglich, die die erforderliche Erfahrung gesammelt haben, um berüchtigte Fallstricke vermeiden zu können. Und selbst diejenigen, die damit arbeiten, tun dies mit Sorgfalt, damit ihr Code nicht angreifbar ist, abstürzt oder fehlerhaft ist.

Rust baut diese Barrieren ab, indem es die alten Fallstricke beseitigt und ein freundliches, ausgefeiltes Instrumentarium zur Verfügung stellt, das dich auf deinem Weg unterstützt. Programmierer, die in die systemnahen Kontrollebenen „eintauchen“ müssen, können dies mit Rust tun, ohne das übliche Risiko von Abstürzen oder Sicherheitslücken einzugehen und ohne die Finessen einer wankelmütigen Werkzeugkette erlernen zu müssen. Besser noch, die Sprache ist so konzipiert, dass sie dich auf natürliche Weise zu zuverlässigem Code führt, der effizient in Bezug auf Geschwindigkeit und Speichernutzung ist.

Programmierer, die bereits mit systemnahem Code arbeiten, können Rust nutzen, um ihre Ambitionen zu steigern. Beispielsweise ist die Einführung von Parallelität in Rust ein relativ risikoarmes Unterfangen: Der Compiler fängt die klassischen Fehler für dich ab. Und du kannst aggressivere Optimierungen in deinem Code wagen mit der Gewissheit, keine versehentlichen Abstürze oder Verwundbarkeiten einzuführen.

Aber Rust ist nicht auf systemnahe Programmierung beschränkt. Es ist ausdrucksstark und ergonomisch genug, um das Schreiben von Kommandozeilen-Anwendungen, Webservern und vielen anderen Arten an Code recht angenehm zu machen – du wirst später in diesem Buch einfache Beispiele dazu finden. Die Arbeit mit Rust ermöglicht es dir, Fähigkeiten zu entwickeln, die von einer Domäne auf eine andere übertragen werden können; du kannst Rust durch Schreiben einer Webanwendung erlernen und dann diese Fähigkeiten auf deinem Raspberry Pi anwenden.

In diesem Buch wird das Potenzial von Rust zur Befähigung seiner Nutzer voll ausgeschöpft. Es ist ein freundlicher und zugänglicher Text, der dir helfen soll, nicht nur dein Wissen über Rust zu erweitern, sondern auch deine Reichweite und dein Selbstvertrauen als Programmierer im Allgemeinen. Also tauche ein, mach dich bereit zum Lernen – und willkommen in der Rust-Gemeinschaft!

– Nicholas Matsakis und Aaron Turon