Rostige Zahnräder (Anlehnung an Rust)
Programmierung

Eine halbe Stunde, um Rust zu lernen

by Viktor Garske on Jan. 2, 2021, 12:47 p.m., with 6 comments

Dieser englischsprachige Artikel über eine Rust-Einführung ist mir soeben ins Auge gefallen.

Rust gewinnt in den letzten Jahren zunehmend an Bedeutung. Ich habe bereits öfter über Rust geschrieben und prophezeie der Sprache den Aufstieg in den C/C++/Java-Olymp – nicht all zuletzt wegen des Hypes und der guten PR. So werden wir sicherlich schon bald Rust-Code im Linux-Kernel begutachten können.

Ein klein wenig wundert es mich trotzdem, warum alle auf einmal auf diesen hype train aufspringen, da es im Gegensatz zu Python tatsächlich mit steigender Projektgröße schwieriger wird, validen Rust-Code zu formulieren. Dies wird besonders dann herausfordernd, wenn Traits, Lifetimes und Generics zusammenspielen sollen, da sich hier gerne mal die Sprache in den Weg stellt. Auf der anderen Seite gibt es üble Tricks, um doch noch Rusts „Zwang zu gutem Code“ zu umgehen. Wie dem auch sei.

Der oben verlinkte Artikel bietet einen kompakten Überblick über die Syntax und Paradigmen von Rust. Trotzdem gilt weiterhin und besonders für Rust: Übung macht den Meister.

Tags:
Author image
Viktor Garske

Viktor Garske ist der Hauptautor des Blogs und schreibt gerne über Technologie, Panorama sowie Tipps & Tricks.

Comments (6)

Comments are not enabled for this entry.

Ich finde Rust tatsächlich ganz hübsch und verwende es inzwischen in neuen Projekten für alles, wofür ich früher C++ genutzt hätte, das es ja auch ersetzen soll.

Als C-Ersatz taugt es wegen des Overheads, der wenigen unterstützten Plattformen und der enorm hohen Kompilierdauer aber nicht. Dafür ist ja auch Go gedacht.

Avatar Viktor Garske moderator

Jan. 2, 2021, 4:07 p.m.

Das ist tatsächlich eine bemerkenswerte Entwicklung, weil du ja vor knapp zwei Jahren noch kritischer zu Rust standest. ;)

Ich werd alt... oder Rust wird besser. ;)

Avatar Viktor Garske moderator

Jan. 2, 2021, 8:03 p.m.

Ich denke, Rust ist eine willkommene Alternative zu C und C++ für die Alltagsprogrammierung. Somit können C und C++ weiter für die spezialisierten Einsatzfelder wie z. B. spezielle Speicheroperationen oder Speicherakrobatik à la fast inverse square root bleiben (ich vergleiche hier C nicht nur mit einem portablen Assembler, sondern auch mit einer "(Typen-)Schablone" auf rohem Speicher). Es ist quasi wie die Evolution mit Assembler: bis heute wird der Wechsel in den Protected Mode noch ASM geschrieben (d. h. man kann nicht alles mit C abdecken), aber täglich nutzen tut man es eher seltener. ;)

Avatar Mäxchen Mustermännchen

Jan. 2, 2021, 5:40 p.m.

Zum "Hype" führt wahrscheinlich, dass Rust "von Natur aus" gewisse Sicherheitsmechanismen mitliefert (u.a. Speicherverwaltung). Was die üblen/unschönen Tricks betrifft, gibt es glaube ich, dass es keine Sprache gibt, die nicht in irgendeiner Weise ausgehebelt werden kann. Die Frage ist dann aber, ob man das dann noch Softwareentwicklung nennen sollte.
Auf der anderen Seite wurde der Vergleich zu Python gewagt und dies mit der Projektgröße. Ich bin zwar kein Python-Fan, habe aber vor wenigen Jahren einige Dinge damit gemacht. Python ist von Natur aus erstmal "nur" eine Skript -und keine Compilersprache. Der Vergleich hingt daher ein wenig. Hier würde ich eher dazu tendieren, C/C++, C# und Java in den Vergleich einzubeziehen. Ist aber wahrscheinlich Geschmacksache ;-)

Avatar Viktor Garske moderator

Jan. 2, 2021, 7:51 p.m.

Ersterer Punkt wundert mich ja. Entwickler, die schon guten C/C++-Code schreiben, werden auch mit Rust problemlos klarkommen. Aber die Frustration, die mit komplexeren Projekten irgendwann einsetzt, kann entmutigen. Und dann können drei Dinge passieren: man hat entweder (1.) die Motivation, die Herausforderungen anzugehen, (2.) beginnt zu tricksen/pfuschen oder (3.) wechselt die Sprache. In größeren Projekten dürfte aus individueller Sicht (3.) wegfallen, also steigt das Risiko von unsafe-Blöcken. Hier kommt es auf die Dokumentation an, die einem die nötige Motivation geben sollte. (in dem Zusammenhang finde ich diesen Artikel besonders gut: https://fasterthanli.me/articles/frustrated-its-not-you-its-rust)

Zu Python: klar, der Vergleich ist gewagt. Aber wenn ich mir Programme wie virt-manager, Gajim oder Frameworks wie Django anschaue, dann sind die Projekte weitaus komplexer als einfache Skripte. Ob Python dabei dafür gemacht ist, ist zunehmend unerheblich – die, die es nutzen (aufgrund z. B. historisch gewachsener Scripte, oder die Mitstreiter von Projekten historisch gewachsener Scripte ;)), fragen nicht danach. Ich versuche ein wenig, diesen Realismusmaßstab auch bei Rust anzulegen. Rust kann bei einigen für ein böses Erwachen sorgen, wenn der Compiler die ganzen Fehler, die bisher in die Runtime verschoben wurden, zum Vorschein bringt. ;)