Rust

Teilen:

Die Fragen in diesem Abschnitt wurden Entwickler*innen gestellt, die angegeben hatten, Rust zu verwenden.

Wie verwenden Sie Rust?

Florian Gilcher

Geschäftsführer von Ferrous Systems

Diese Zahlen gefallen mir. Rust wächst, und die gleichbleibenden relativen Zahlen bedeuten sowohl mehr Arbeitsplätze als auch eine solide Gruppe an Neuankömmlingen, die diese Arbeitsplätze füllen können. Meine Empfehlung für Firmen mit offenen Stellen: Lasst die Anforderung „x Jahre Rust“ weg, und ihr könnt auf einen Pool von talentierten Hobbyentwickler*innen zurückgreifen, die oft bereits auf professionellem Niveau programmieren. Es gibt eine solide Pipeline für Wachstum.

Luca Palmieri

Principal Engineering Consultant bei Mainmatter

Der Einsatz von Rust am Arbeitsplatz schreitet stetig voran, und die Zahl der Produktivinstallationen steigt. Gleichzeitig ist die Nachfrage nach Rust-Arbeitsplätzen immer noch deutlich höher als die Zahl der Stellenangebote. Das ist nicht ideal für Entwickler*innen, die ihre erste Rust-Stelle antreten wollen, aber es ist definitiv eine gute Nachricht für Arbeitgeber: Es gibt zahlreiche Talente, die sich über eine Gelegenheit freuen, täglich mit Rust zu arbeiten.

Tim McNamara

Gründer von Accelerant.dev, Autor von Rust in Action

Die Antworten auf diese Frage zeigen für mich, dass es in der Rust-Community ein lebendiges Gleichgewicht und eine enorme Vielfalt gibt.

Es ist ermutigend zu sehen, dass immer mehr Rust-Entwickler*innen Geld für ihre Arbeit mit Rust verlangen können. Wenn wir 2023 mit 2022 vergleichen, sehen wir eine Änderung von 11 Prozentpunkten innerhalb eines einzigen Jahres.

Es mag zwar enttäuschend erscheinen, dass nur jede*r Fünfte Rust bei der Arbeit nutzen kann, aber dies hängt damit zusammen, dass viele Menschen die Sprache gerade erst lernen. Bei vielen Neuankömmlingen ist es sehr schwer, diese Statistik auf über 50% zu bringen.

Ich denke, dass es wirklich gut ist, dass Leute Rust für ihre persönlichen Nebenprojekte verwenden. Dies bedeutet, dass die Menschen sich für Rust entscheiden, um ihrer Kreativität Ausdruck zu geben.

Wie lange verwenden Sie Rust schon?

Tim McNamara

Gründer von Accelerant.dev, Autor von Rust in Action

Ein überproportionaler Anteil an Neueinsteiger*innen ist ein Zeichen für eine exponentiell wachsende Community.

Führungspersönlichkeiten der Community sollten hierbei bedenken, dass mehr als 75% der Rust-Anwender*innen weniger als ein Jahr Erfahrung mit der Sprache haben.

Ich würde mich freuen, wenn mehr größere Projekte im Ökosystem ihre Anzahl an Mitwirkenden erhöhen. Es gibt viele wichtige Crates, die derzeit von einer einzigen Person betreut werden.

Luca Palmieri

Principal Engineering Consultant bei Mainmatter

Rust erzeugt enorme Loyalität: Es wurde sieben Jahre in Folge auf StackOverflow zur beliebtesten Programmiersprache gewählt – dies bedeutet, dass Entwickler*innen, die Rust einmal gelernt haben, es auch weiterhin verwenden wollen.

Gleichzeitig ist weiterhin ein starker Zustrom in das Rust-Entwicklungsökosystem zu erkennen: Mehr als die Hälfte der Befragten ist gerade erst dabei, Rust kennenzulernen (<6 Monate).

Eine hohe Loyalität und ein gesunder Zustrom an neuen Mitwirkenden sind für das gesamte Ökosystem eine großartige Entwicklung!

Florian Gilcher

Geschäftsführer von Ferrous Systems

Das ist insbesondere für Neueinsteiger*innen eine gute Nachricht. Wenn Sie jetzt mit Rust beginnen, haben Sie eine gute Chance, Expertenstatus auf diesem Gebiet zu erreichen. Bei anderen Sprachen gibt es hingegen in jedem Team jemanden mit 10 Jahren Erfahrung oder mehr. Jetzt ist der beste Zeitpunkt, um Rust zu lernen!

Welche Programmiersprachen verwenden Sie in Ihren Projekten zusammen mit Rust?

Luca Palmieri

Principal Engineering Consultant bei Mainmatter

Mehr als die Hälfte der Befragten arbeiten an mehrsprachigen Projekten, bei denen Rust zusammen mit anderen Technologien zum Einsatz kommt. Je nach Programmiersprache können wir Annahmen über die vorherrschenden Codemuster treffen: ein JavaScript/TypeScript-Frontend auf der Basis einer Rust-API, native Erweiterungen (Rust+Python), gemischtsprachige Projekte (C/C++) und Over-the-Wire-Interaktionen zwischen Microservices (Go, Python, C#, Java usw.).

Tim McNamara

Gründer von Accelerant.dev, Autor von Rust in Action

Es ist schön zu sehen, dass Rust sich so kooperativ zeigt. Ich sehe hier den Einfluss der Verwendung von Rust für Web-Backends (JS/TS, SQL) und CLIs (Shell-Skriptsprachen).

Die Verwendung von Rust zum Erweitern von oder zumindest zusammen mit JVM-Sprachen und in geringerem Maße mit Sprachen, die mit dem CLR (C#) gebaut werden, ist ein sehr interessantes Zeichen. Ich gehe davon aus, dass mit der zunehmenden kommerziellen Verbreitung der Druck steigen wird, dafür zu sorgen, dass Rust in Build-Systemen, die mehrere Sprachen kompilieren/erzeugen, gut funktioniert.

Von welcher Programmiersprache sind Sie zu Rust gewechselt?

Florian Gilcher

Geschäftsführer von Ferrous Systems

Die obigen Statistiken lassen sich wie bereits in den Jahren zuvor zusammenfassen: Rust war und ist eine Sprache, die nicht auf die Systemprogrammierung beschränkt ist, sondern einen viel größeren Wirkungsradius hat.

Tim McNamara

Gründer von Accelerant.dev, Autor von Rust in Action

Wow! „Es hat keine Programmiersprache ersetzt“ hat einen viel größeren Anteil als erwartet – vielleicht 10-mal so groß oder noch größer.

Das ist ein gutes Zeichen dafür, dass Rust immer zugänglicher wird. Aber es bestärkt mich in meiner persönlichen Überzeugung, dass wir als Gemeinschaft besser darin werden müssen, Rust zu unterrichten.

Wie interagiert Ihr Rust-Code mit anderen Codeteilen?

Tim McNamara

Gründer von Accelerant.dev, Autor von Rust in Action

Ich hatte damit gerechnet, dass WebAssembly/WASI hier auftauchen würde, aber ich hätte viel weniger als 22% geschätzt!

Es wäre interessant, die Interoperabilitätsmuster, die WebAssembly ermöglicht, genauer zu untersuchen. Geht es darum, Rust-Codebestände um benutzerseitige Plugins zu erweitern, die in einer beliebigen Sprache geschrieben sind? Oder wollen wir in Rust Komponenten schreiben, die von anderen Anwendungen ausgeführt werden? Oder erleben wir gerade den Erfolg des Spin/Fermyon-Experiments, indem Anwendungen aus WebAssembly-Modulen zusammengestellt werden, die in unterschiedlichen Programmiersprachen geschrieben wurden?

Luca Palmieri

Principal Engineering Consultant bei Mainmatter

Rust für Web-Backends!

Der anteilige Rückgang bei Projekten, die FFI verwenden, ist interessant.

Ich freue mich auf einen weiteren Aufstieg von WebAssembly. Wasm-Module sind ein starker Schutzschild gegen Supply-Chain-Attacken, und in diesem Bereich ist das quelloffene Ökosystem von Rust derzeit recht angreifbar.

Florian Gilcher

Geschäftsführer von Ferrous Systems

Die Vielfalt der in der Praxis eingesetzten Integrationsoptionen ist erstaunlich. Da die meisten Projekte eine Integrationskomponente haben, würde ich mir außerdem mehr Aufmerksamkeit für die allgemeine Integration von Rust in andere Systeme wünschen.

Welche Plugins/Hilfsprogramme verwenden Sie in Ihrer IDE für Rust?

Tim McNamara

Gründer von Accelerant.dev, Autor von Rust in Action

Die eigentliche Überraschung dabei ist, dass es so wenige kommerzielle Optionen gibt. Hut ab vor JetBrains für die langjährige proaktive Unterstützung von Rust.

Florian Gilcher

Geschäftsführer von Ferrous Systems

Es freut mich zu sehen, dass bei den Editoren die beiden großen Optionen erfolgreich sind. rust-analyzer scheint sich die Überreste des eingestellten RLS/Racer einverleibt zu haben, während IntelliJ Rust die Standardwahl für diejenigen bleibt, die eine integrierte Erfahrung bevorzugen.

Luca Palmieri

Principal Engineering Consultant bei Mainmatter

Vor einem Jahr wurde rust-analyzer von der Rust-Organisation übernommen und löste RLS als „offiziellen“ Sprachserver ab – als Abschluss einer Entwicklung, die vor mehr als zwei Jahren begonnen hatte. Die Umfrage bestätigt, dass die RLS-Benutzergemeinde nun letztendlich dabei ist, zu rust-analyzer zu wechseln, aber das war auch eine ernüchternde Erinnerung daran, dass die Migration eines ganzen Ökosystems ein komplexer und langsamer Prozess ist, egal wie überlegen die Alternative ist und wie viel Druck/Koordination eingesetzt wird.

Welche IDEs oder Editoren verwenden Sie für die Rust-Entwicklung?

Welche Rust-Features vermissen Sie in IDEs am meisten?

Tim McNamara

Gründer von Accelerant.dev, Autor von Rust in Action

Wenn ich mir diese Funktionsliste ansehe, steigen gleich meine Erwartungen an meine IDE! Ich hoffe auch auf eine Visualisierung von Lebensdauern, aber ich frage mich, ob das in komplizierten Fällen helfen wird. Vielleicht wird daraus nur eine weitere Mini-Sprache, deren Interpretation ich lernen muss.

Ich bin beeindruckt, wie hoch prozedurale Makros bewertet werden. Mir war nicht klar, dass so viele Leute ihre eigenen proc-macros schreiben!

Was JetBrains anbieten könnte, wäre eine ähnliche Erfahrung wie GitHub Codespaces. Ich nutze Cloud-Desktops wirklich gerne, aber ich bin immer skeptisch, was den Preis angeht.

Luca Palmieri

Principal Engineering Consultant bei Mainmatter

Beginnen wir mit den positiven Aspekten: Ein Drittel der Befragten ist mit dem aktuellen Stand der IDE-Unterstützung für Rust zufrieden. Das ist großartig!

Aber es ist nicht alles perfekt. Wir müssen mehr tun, um Benutzer*innen bei den Aspekten zu unterstützen, die nur in Rust existieren, z. B. Lebensdauern. Prozedurale Makros sind eine ständige Herausforderung: In komplexen Codebeständen sind sie aufgrund ihrer Nützlichkeit allgegenwärtig, aber bei einer ausgiebigen Verwendung beeinträchtigen sie die IDE-Erfahrung erheblich.

Sobald diese zentralen Sprachkonstrukte gut abgedeckt sind, würde ich mich freuen, wenn IDEs sich spezielleren Anwendungsfällen widmen würden (z. B. integrierte Unterstützung für konkrete Web-Frameworks).

Welche Build-Systeme verwenden Sie zum Kompilieren von Rust?

Tim McNamara

Gründer von Accelerant.dev, Autor von Rust in Action

6% der Befragten verwenden Make für ihre Builds?! Wow, manche Leute hängen wirklich an ihren alten Werkzeugen. Eine Sache, die mir bei Entwickler*innen aufgefallen ist: Es ist ihnen wichtig, Kontrolle zu haben.

Luca Palmieri

Principal Engineering Consultant bei Mainmatter

Keine Überraschungen hier: Bei Rust-Projekten ist Cargo das Maß der Dinge.

Wie debuggen Sie normalerweise Ihren Rust-Code?

Luca Palmieri

Principal Engineering Consultant bei Mainmatter

Das Bild hat sich im Vergleich zum Vorjahr kaum geändert: Das Debugging mit println! hat die niedrigste Einstiegshürde und bleibt die führende Methode unter den Befragten. Wir haben es hier definitiv mit einer Tooling-Lücke zu tun, aber ich glaube, das ist nicht die ganze Geschichte: Wir haben auch eine Bildungslücke. Es gibt nur sehr wenig Material, das den Leuten zeigt, wie sie die vorhandenen Debugging-Tools nutzen können.

Tim McNamara

Gründer von Accelerant.dev, Autor von Rust in Action

Es ist keine Schande, println! zu verwenden (damit es sich besser anhört, könnten wir es auch Tracing-Debugging nennen). Aber es ist schön, dass IDE-Entwickler*innen sich so viel Mühe gegeben haben, echtes Debugging so einfach wie möglich zu machen. Wenn wir lernen, ein Programm mit einem Debugger Schritt für Schritt auszuführen, bringt das einen echten Produktivitätsschub.

Florian Gilcher

Geschäftsführer von Ferrous Systems

Diese Situation frustriert mich. Ich denke, eine verbesserte Debugging-Erfahrung ist möglich, und IDEs scheinen ein guter Weg in dieser Richtung zu sein. Ich finde jedoch, dass dies über die Jahre eher stagniert hat. Dies zeigt sich darin, dass „einfache Konsolen-Printanweisungen“ immer noch als die bevorzugte Option gesehen werden.

Welche Profiling-Tools verwenden Sie für Rust?

Luca Palmieri

Principal Engineering Consultant bei Mainmatter

Die Zahl der Entwickler*innen, die einen Profiler in ihrem Rust-Projekt verwenden, ist deutlich angestiegen!

Dies ist fast ausschließlich auf die verstärkte Nutzung des IDE-integrierten Profilers zurückzuführen: Wenn wir dafür sorgen, dass leistungsstarke Tools einfach zu bedienen sind, nutzen Entwickler*innen sie.

Wir haben allerdings noch viel Arbeit vor uns. Genauso einfach sollte auch das Profiling von Anwendungen in unseren Produktionsumgebungen sein, und in dieser Hinsicht sind wir von einer großartigen Entwicklungserfahrung noch weit entfernt.

Florian Gilcher

Geschäftsführer von Ferrous Systems

Die relative Popularität von integrierten Profilern bestätigt mich in meiner Grundannahme, dass oft nur deswegen auf Profiling verzichtet wird, weil es nicht einfach zu nutzen ist.

Welche Arten von Projekten entwickeln Sie in Rust?

Luca Palmieri

Principal Engineering Consultant bei Mainmatter

Deshalb liebe ich Umfragen – sie stellen den vorherrschenden Narrativen die Kraft der rohen Daten entgegen.

Rust steht in den Köpfen der meisten Menschen für „Systemprogrammierung“, aber die Realität ist wesentlich nuancierter: 38% der Befragten nutzen es für die Webentwicklung, entgegen der Behauptung, Rust sei für diesen Anwendungsfall „Overkill“ oder „zu schwer“. Ich bin der festen Überzeugung, dass dies das nächste große Einsatzfeld für Rust ist, und es wird interessant sein zu sehen, ob diese Vermutung von den Daten bestätigt wird.

Florian Gilcher

Geschäftsführer von Ferrous Systems

Es freut mich zu sehen, dass bei all dem Wachstum der Embedded/IoT-Anteil von Rust auf dem gleichen Niveau bleibt. Die positive Überraschung dieses Jahres ist für mich die zunehmende Nutzung für Desktop-Anwendungen – es gibt immer eine Zahl, die nicht dem Bauchgefühl entspricht. Die Tatsache, dass sich die Zahlen im Verhältnis zueinander kaum ändern, deutet auf ein relativ ausgereiftes und stabiles Ökosystem hin, das sich in eine bestimmte Richtung entwickelt.

Tim McNamara

Gründer von Accelerant.dev, Autor von Rust in Action

Das große Spektrum der Projekte ist erfrischend. Ein Aspekt, den ich an der Sprache liebe, ist, dass ihre Sicherheitsgarantien den Menschen die Zuversicht geben, in bisher unzugänglichen Bereichen zu experimentieren.

Für welche Zielplattform entwickeln Sie Ihre Rust-Projekte?

Tim McNamara

Gründer von Accelerant.dev, Autor von Rust in Action

Die Vielfalt hier ist wirklich faszinierend. Ich hätte den Linux-Anteil auf der Serverseite viel höher eingeschätzt, auf weit über 90%. Dies könnte damit zusammenhängen, dass viele Leute Rust zum Erstellen von CLIs verwenden und die Mehrheit der Entwickler*innen es für Hobby- und Nebenprojekte nutzt.

Der Anteil an Embedded-Entwickler*innen scheint sehr hoch zu sein. Ich sehe Embedded als eine ziemlich kleine Nische, aber es gibt eindeutig eine engagierte und breite Gruppe von Leuten, die Rust für Projekte verwenden, die nicht auf einem Betriebssystem aufbauen.

Florian Gilcher

Geschäftsführer von Ferrous Systems

Auch hier keine Überraschungen. Die fortschreitende Verbreitung von Rust in konservativeren Unternehmen erhöht die Relevanz von Windows als Zielplattform.

Danke, dass Sie sich die Zeit genommen haben!

Wir hoffen, dass Sie unseren Bericht nützlich fanden. Teilen Sie diesen Bericht im Freundes- und Kollegenkreis.

Wenn Sie Fragen oder Anregungen haben, schreiben Sie uns bitte unter surveys@jetbrains.com.