Rust bemüht sich um Inklusion und Performance

Um Ist und Soll vor Augen zu führen, hat Rusts Nicholas Matsakis in einem Blogeintrag zusammengefasst, was das erste Halbjahr mit öffentlicher Roadmap gebracht hat. Außerdem findet die Sprache etwa bei Oracle neue Unterstützer.

In Pocket speichern vorlesen Druckansicht
Rust bemüht sich um Inklusivität und Performance
Lesezeit: 4 Min.
Von
  • Julia Schmidt

Seit Anfang 2017 folgt die Entwicklung der Programmiersprache Rust einem offenen Prozess zur Bestimmung nächster Schritte. Dieser sieht auch regelmäßige Status-Updates vor, wie das nun auf dem Rust-Blog verfügbare, das die Fortschritte der ersten Jahreshälfte zusammenfasst.

Als Schwächen wurden Anfang Februar 2017 unter anderem der schwierige Einstieg in die Sprache und fehlende Hilfsmittel benannt. Seit dem hat sich das Team unter anderem bemüht, eine neue Auflage des offiziellen Rust-Books fertigzustellen. Ein erster Entwurf, der sich unter anderem ausführlicher mit Punkten wie Error Handling, Testing, Matching und Modulen befasst, ist nun online zu finden. Um das Verständnis der Sprache zu erleichtern, wurde zudem an Änderungen gearbeitet, die unter anderem das Pattern Matching verbessern sollen.

In Sachen Hilfsmittel wurde weiter am Rust Language Service gearbeitet, der nun Support für grundlegende IDE-Funktionen wie Codevervollständigung und das Auffinden aller Aufrufe einer Funktion enthält und sich in der Alpha-Phase befindet. Um den Überblick über das wachsende Ökosystem rund um Rust zu behalten, gibt es in Rusts Paketverwaltung Cargo nun Kategorien und Badges zur Einordnung und Auszeichnung. Darüber hinaus soll die Standardsortierung geändert werden.

Bis Ende des Jahres soll eine async/await-Notation im Nightly Channel landen, die Entwickler unter anderem zum Schreiben stabiler Server brauchen. Außerdem hat das Rust-Team sich darum bemüht, die Performance des Rust-Compilers zu verbessern, was sich etwa in dem in Rust 1.16 gelandeten Befehl cargo check, der nur auf Fehler prüft und keinen Code generiert, und einem zweiten Versuch, einen inkrementellen Ansatz umzusetzen, zeigt. Zwar hatte es bereits eine Betaversion eines inkrementell arbeitenden Compilers gegeben, allerdings gab es damit wohl unter anderem Probleme beim Dependency Tracking.

Der verbesserte Ansatz soll eventuell im August vorgestellt werden. Um nachverfolgen zu können, welche Auswirkungen Neuerungen auf Rusts Performance haben, hat das Team außerdem eine neue Version von perf.rust-lang.org online gestellt, die die Auswirkung jedes Pull Requests auf die Leistungsfähigkeit verfolgt. Damit sollen sich auch Verschlechterungen schneller korrigieren lassen.

Da Rust ein Open-Source-Projekt ist, zieht sich ein Aufruf zur Mitarbeit durch den ganzen Blog-Eintrag: So werden etwa Freiwillige zur Nachbearbeitung der Buchkapitel, zum Schreiben und Implementieren von RFCs, zur Hilfe bei der Umsetzung der inkrementellen Kompilierung und der Weiterentwicklung des Rust Language Service gesucht. Am Fortschritt der Sprache interessierte Entwickler finden Informationen zu laufenden Initiativen in den Issues des Rust-Roadmap-Repository auf GitHub.

Um die Mitarbeit einfacher zu gestalten, haben die Rust-Entwickler dedizierte Teams für die Infrastruktur, Cargo und Entwicklertools gegründet, im Sprachteam sogenannte Shepherds eingesetzt, die in schwierigen Situationen als Vermittler dienen sollen und ergänzende Mentoring-Maßnahmen eingeführt. Mit RustBridge und Increasing Rust's Reach gibt es darüber hinaus Initiativen, um unterrepräsentierte Gruppen stärker einzubeziehen.

Mozilla stellte Rust 2010 der Öffentlichkeit vor. Vorteile wie Speichersicherheit und Geschwindigkeit konnten unter anderem Oracle dazu bewegen, die kürzlich vorgestellte Container-Laufzeitumgebung Railcar in Rust zu schreiben. Zwar sei Go in Container-Projekten weit verbreitet, für kleine Systemprogramme, die auf gute Thread-Kontrolle angewiesen sind und viele Systemaufrufe machen müssen, gäbe es allerdings bessere Optionen, so Oracles Vish Abrams in der Ankündigung.

Dass Oracle mit dieser Auffassung nicht allein in der Container-Welt steht, sieht man unter anderem an CoreOS' linkerd, wo Rust etwa zur Erweiterung des Service Mesh zum Einsatz kommt. Darüber hinaus findet die Sprache unter anderem in Unternehmen wie npm, Braintree, Coursera und Chef Verwendung. (jul)