Warum die Rust-Sprache auf dem Vormarsch ist

Sie haben wahrscheinlich noch nie etwas in Rust geschrieben, der von Mozilla erstellten Open Source-Programmiersprache auf Systemebene, aber Sie werden es wahrscheinlich irgendwann tun. Entwickler haben Rust in der Entwicklerumfrage 2019 von Stack Overflow zu ihrer „beliebtesten“ Sprache gekürt, während Redmonks halbjährliche Sprachrankings zeigten, dass Rust in die Nähe der Top 20 kam (Rang 21).

Dies, obwohl Rust-Benutzer "Schwierigkeiten und Frustration mit den vielbeachteten Funktionen der Sprache für die Sicherheit und Korrektheit des Gedächtnisses finden".

Warum ist eine Sprache bekanntermaßen etwas schwierig zu lernen und so beliebt? In Gesprächen mit Entwicklern scheint die Antwort auf die Idee zu kommen, dass Rust "Systemprogrammierung mit Leitplanken" ist, wie Oso CTO Sam Scott es beschreibt, wobei eine dieser "Leitplanken" eine außergewöhnlich einladende Community ist.

Systemprogrammierung mit Leitplanken

Die meisten Entwickler reisen normalerweise nicht in das Gebiet der Systemprogrammierung. Beispielsweise müssen Anwendungsentwickler in der Regel nicht in die Nähe der zugrunde liegenden Hardware gelangen. Sie müssen wahrscheinlich auch keine Plattformen erstellen, auf denen andere Software ausgeführt wird, ein zentrales Definitionselement der Systemprogrammierung.

Für Entwickler, die mit untergeordneten Programmiersprachen wie C oder C ++ arbeiten, ist Rust eine Offenbarung, die ich 2015 zum ersten Mal behandelt habe. Spulen Sie jedoch ein paar Jahre vor, und Rust wird immer besser.

Der Entwickler David Barsky wird gebeten, die wichtigsten Verkaufsargumente von Rust zu erläutern und bietet Folgendes:

  • Performant.  Rust ist in der Lage, C / C ++ in Bereichen zu ersetzen, in denen es normalerweise gedeiht. Beispiel: „Bei latenzempfindlichen Netzwerkdiensten führt das Fehlen einer Laufzeit-Garbage Collection von Rust zu fast nicht vorhandenen Endlatenzen.“
  • Zuverlässig.  "Das Typsystem und der Ausleihprüfer - ein statischer Garbage Collector zur Kompilierungszeit - verhindern ganze Fehlerklassen, die in Python, Java und C ++ als" normal "akzeptiert werden."
  • Entwicklerproduktivität.  "Cargo, das Build-Tool und der Paketmanager, ist eines der besten Build-Systeme und Paketmanager, die ich verwendet habe." Rust bietet außerdem eine hervorragende integrierte Dokumentation sowie hervorragende integrierte Einheiten-, Integrations- und Dokumentationstests.

Barskys Erfahrung scheint der von Scott ähnlich zu sein. Scott stammt aus höheren Programmiersprachen (Java, Ruby on Rails) und sagt, seine Erfahrung mit C sei weniger angenehm gewesen: „C war schrecklich, weil ich ständig auf Speicherprobleme, Segfaults usw. gestoßen bin. Und ich mehr oder weniger Ich hatte das Gefühl, die ganze Zeit mit dem Code zu kämpfen. “

Im Gegensatz dazu war Rust „Systemprogrammierung mit Leitplanken“. Scott erklärt:

Dann habe ich Rust ausprobiert (es war gerade 1.0 geworden) und es fühlte sich an wie Systemprogrammierung mit Leitplanken. All die Dinge, die ich brauchte, um Systeme auf niedriger Ebene zu programmieren, aber mit viel Hilfe, um den Code zu debuggen und sicher zu machen - wie den Leihprüfer und den Compiler und später Werkzeuge wie die Linters („clippy“). Es hatte viele der bekannten Aspekte der funktionalen und objektorientierten Programmierung geboten und schien einfach zu meinem mentalen Modell zu passen, wie ich Systeme bauen wollte.

Als Mitbegründer von Oso konnte Scott die Programmierung auf niedrigerer Ebene nicht vermeiden. Oso, mit dem Ziel, die Sicherheit der Back-End-Infrastruktur für Entwickler unsichtbar und für Ops einfach zu machen, benötigt die Leistung, die eine Sprache auf Systemebene bietet. "Wir können keine mit Müll gesammelte Sprache wie Go verwenden, da die Leistung für das, was wir tun, nicht konsistent genug wäre, da wir uns auf dem kritischen Pfad des Kundenverkehrs befinden", sagte Scott. 

Das klingt alles großartig, bis wir zu dem potenziellen Problem zurückkehren, Entwicklertalente zu finden, die sich in einer relativ neuen Sprache auskennen. Zugängliches Talent ist jedoch möglicherweise das beste Merkmal von Rust.

Rostprogrammierer gesucht

Eine entscheidende Komponente, um etwas Neues zu lernen, ist die Bereitschaft der Menschen, beim Übergang zu helfen. Hier scheint Rust. Wie Barsky es ausdrückt,

Die Rust-Community ist voller leidenschaftlicher, freundlicher und intelligenter Menschen. Es gibt einen stark durchgesetzten Verhaltenskodex, was bedeutet, dass unhöfliches oder belästigendes Verhalten nicht toleriert wird. Anekdotisch hat es einige der höchsten Konzentrationen von LGBTQA-Leuten, die ich in einer Tech-Community gesehen habe.

Diese Community ist ein wichtiger Grund, warum Entwickler laut Scott Rust in wenigen Monaten abholen können. Rust "erfordert ein wenig Umdenken", sagt er. "Sie müssen im Voraus mehr über Dinge wie Typen und Lebensdauern nachdenken." Aber sobald Sie dort angekommen sind, "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 Community von Rust minimiert.