Warum Programmiersprache Rust auf dem Vormarsch ist

Rust ist vielleicht nicht einfach zu erlernen, aber Entwickler lieben die Geschwindigkeit, die Tools, die "Leitplanken" und die Community. [...]

Rust gilt als eine Programmiersprache, die schwer zu lernen ist. Hat man diese Hürde erstmal überwunden, kann sie einem helfen, Bugs schon im Keim zu ersticken (c) Pixabay.com

Wahrscheinlich haben Sie noch nie etwas in Rust geschrieben, der von Mozilla entwickelten Open-Source-Programmiersprache auf Systemebene, aber das werden Sie sicherlich irgendwann einmal. In der Entwicklerumfrage 2019 von Stack Overflow krönte man Rust zu einer der „beliebtesten“ Sprachen, während Redmonk es in seinen halbjährlichen Sprachrankings in die Nähe der Top 20 (Rang 21) rückte.

Dies, obwohl die Rust-Anwender „Schwierigkeiten und Frustrationen mit den hoch gelobten Funktionen der Sprache für die Sicherheit und Korrektheit des Gedächtnisses haben“.

Warum ist eine Sprache, die bekanntermaßen etwas schwierig zu lernen ist, so beliebt? In den Gesprächen mit den Entwicklern scheint die Antwort auf die Idee zu kommen, dass Rust „Systemprogrammierung mit Leitplanken“ ist, wie es Oso-CTO Sam Scott beschreibt, wobei eine dieser „Leitplanken“ eine ausgesprochen einladende Community ist.

Systemprogrammierung mit Leitplanken

Die meisten Entwickler betreten das Gebiet der Systemprogrammierung in der Regel nicht. Anwendungsentwickler zum Beispiel neigen dazu, nicht in die Nähe der zugrunde liegenden Hardware zu kommen. Sie müssen wahrscheinlich auch keine Plattformen aufbauen, auf denen andere Software laufen wird, ein zentrales Definitionselement der Systemprogrammierung.

Für Entwickler, die mit untergeordneten Programmiersprachen wie C oder C++ arbeiten, ist Rust eine Offenbarung, die ich erstmals im Jahr 2015 behandelt habe. Doch jetzt, ein paar Jahre später, wird Rust immer noch besser.

Auf die Frage nach den wichtigsten Verkaufsargumenten von Rust bietet der Entwickler David Barsky Folgendes an:

  • Performant. Rust ist in der Lage, C/C++ in Räumen zu ersetzen, in denen es typischerweise gedeiht. Zum Beispiel: „Für latenzsensitive Netzwerkdienste führt das Fehlen der Rust’schen Runtime Garbage Collection zu fast nicht vorhandenen Tail-Latenzen.“
  • Zuverlässig. „Sein Typsystem und sein Borrow-Checker – ein statischer, kompilierbarer Garbage Collector – verhindert ganze Klassen von Bugs, die in Python, Java und C++ als ’normal‘ akzeptiert werden.“
  • Produktivität der Entwickler. „Cargo, das Build-Tool und der Package-Manager, ist eines der besten Build-Systeme und Package-Manager, die ich je benutzt habe.“ Rust kommt auch mit einer ausgezeichneten integrierten Dokumentation und einer großartigen, integrierten Unit, Integration und Dokumentationsprüfung.

Barskys Erfahrung scheint der von Scott ähnlich zu sein. Scott kommt aus höheren Programmiersprachen (Java, Ruby on Rails) und sagt, dass seine Erfahrungen mit C weniger als angenehm waren: „C war schrecklich, weil ich ständig auf Speicherprobleme, Segfehler usw. gestoßen bin. Und ich fühlte mich mehr oder weniger so, als würde ich die ganze Zeit mit dem Code kämpfen.“

Dann testete ich Rust (es war gerade 1.0 geworden), und es fühlte sich an wie die Programmierung von Systemen mit Leitplanken. All die Dinge, die ich brauchte, um Low-Level-Systeme zu programmieren, aber mit viel Hilfe, um den Code zu debuggen und sicher zu machen – wie den Borrow Checker und Compiler, und dann später Tools wie die Linters („clippy“). Es bot viele der bekannten Aspekte der funktionalen und objektorientierten Programmierung an und schien einfach zu meinem Gedankenmodell zu passen, nach dem ich Systeme bauen wollte.

Als Mitbegründer von Oso konnte Scott die Programmierung auf unterer Ebene nicht vermeiden. Oso, mit der Mission, die Sicherheit der Backend-Infrastruktur für Entwickler unsichtbar und für den Betrieb einfach zu machen“, benötigt die Leistung, die eine Sprache auf Systemebene bietet. „Wir können keine garbage-collected Sprache wie Go verwenden, weil die Leistung nicht konsistent genug für das ist, was wir tun, da wir auf dem kritischen Pfad des Kundenverkehrs sitzen“, so Scott.

Das alles klingt großartig, bis wir auf das potenzielle Problem zurückkommen, Entwickler-Talente zu finden, die in einer relativ neuen Sprache gut ausgebildet sind. Zugängliche Talente können jedoch das beste Merkmal von Rust sein.

Rust-Programmierer gesucht

Eine entscheidende Komponente beim Lernen von etwas Neuem ist es, dass Menschen bereit sind, beim Übergang zu helfen. Hier glänzt Rust. Wie Barsky es ausdrückt,

Die Rust Community ist voll von leidenschaftlichen, freundlichen und intelligenten Menschen. Sie hat einen stark ausgeprägten Verhaltenskodex, was bedeutet, dass unhöfliches oder belästigendes Verhalten nicht toleriert wird. Anekdotisch gesehen hat es eine der höchsten Konzentrationen von LGBTQA-Leuten, die ich je in einer Tech-Community gesehen habe.

Diese Community ist ein wichtiger Grund dafür, dass, so Scott, Entwickler Rust in ein paar Monaten aufgreifen können. Rust „erfordert ein gewisses Umdenken“, meint er. „Du musst mehr im Voraus über Dinge wie Typen und Lebenszyklen nachdenken.“ Aber wenn man erst einmal dort angekommen ist, „zahlt es sich auf der ganzen Linie aus.“

Kein Wunder also, dass so viele Entwickler Rust lieben. Der Vorteil ist groß und der Nachteil wird durch die einladende und integrative Gemeinschaft von Rust minimiert.

*Matt Asay schreibt unter anderem für InfoWorld.com

Werbung


Mehr Artikel