Veröffentlicht am: 18 März 2025
Experte:
Ir. Kris van Rens
Trainer
Lesen Sie mehr über Kris van Rens
Aktie

Ende 2022 schrieb Kris van Rens über den Aufstieg der Programmiersprache Rust, und zwar weitgehend in demselben Anwendungsbereich, der von C und C++ dominiert wird. Hat sich die Landschaft der traditionellen Systemprogrammierung wirklich verändert oder war das alles nur viel Lärm um nichts?

Laut dem Tiobe-Index steht Python mit 23 Prozent einsam an der Spitze der „beliebtesten Programmiersprachen“. Es folgen C++ (10 Prozent), Java (ebenfalls 10 Prozent) und C (9 Prozent). Der Index versucht, Erkenntnisse darüber zu gewinnen, wonach Menschen in Suchmaschinen suchen, wobei man davon ausgeht, dass dies ein Maß für die Popularität ist. Als relativ junge Sprache liegt Rust mit etwas mehr als 1 Prozent auf Platz 14.

In einer abschließenden Zusammenfassung schreibt der CEO von Tiobe, Paul Jansen, über Rust, dass „seine steile Lernkurve es leider nie zur Lingua Franca des gewöhnlichen Programmierers machen wird.“ Die steile Lernkurve einer Sprache als Hindernis auf dem Weg zu einem großen Erfolg zu nennen, erscheint mir etwas zweifelhaft, wenn man bedenkt, wie beliebt C++ in Kombination mit seiner Komplexität in großem Maßstab ist. Ich denke auch, dass die Überschätzung und Betonung der Lernkurve einer Sprache die Entwickler unterschätzt – viele Unternehmen, die Rust in der Produktion einsetzen, haben bereits gezeigt, dass es sehr leicht zu handhaben ist.

''When it comes to learning in general, I always tend to keep a positive attitude: people are much more capable than we might think.''

Einzigartiges Kunststück

In den letzten Jahren hat sich Rust als würdige Alternative im Bereich der produktionsgerechten Systemprogrammierung etabliert. Es demonstriert erfolgreich, wie eine Sprache gleichzeitig modern, performant und sicher sein kann. Sie wird kontinuierlich alle sechs Wochen veröffentlicht, so dass es immer etwas Neues gibt – zum Zeitpunkt der Erstellung dieses Artikels sind wir bei v1.85. Neue Funktionen kommen, wenn sie fertig sind, und die meisten Änderungen an der Sprache oder der Bibliothek erfolgen eher stückweise.

Da Rust immer ausgereifter wird, hat seine Beliebtheit und Akzeptanz im Laufe der Zeit allmählich zugenommen. Der Risikofaktor für die Einführung als Produktionssprache der Wahl hat nachgelassen, wie man aus den Berichten vieler Unternehmen schließen kann. Google hat Teile von Android in Rust umgeschrieben, um die Sicherheit zu verbessern, Microsoft schreibt zentrale Windows-Bibliotheken in Rust um und Amazon verwendet Rust schon seit langem in seiner AWS-Infrastruktur.

Eine weitere erwähnenswerte Besonderheit ist, dass Rust neben C Teil des Mainline-Linux-Kernels ist. Es muss gesagt werden, dass die Bemühungen, die Unterstützung für Rust auf alle Kernel-Subsysteme auszuweiten, nicht unumstritten sind, aber mit dem Segen von Linus Torvalds werden Fortschritte erzielt . Es wird sehr interessant sein zu sehen, wie sich dieses Experiment entwickeln wird.

''One of my main observations is that switching back from Rust to C++ makes me feel as if I’m being flung back into the dark ages of systems software development.''

Glückliche Entwickler

Ich habe in den letzten Jahren viel mit Rust und C++ gearbeitet. Eine meiner wichtigsten Beobachtungen ist, dass der Wechsel von Rust zu C++ mir das Gefühl gibt, in das dunkle Zeitalter der Systemsoftwareentwicklung zurückgeworfen zu werden. Das mag hart klingen, aber ehrlich gesagt fühlen sich die meisten Programmieraufgaben selbst bei der Verwendung der neuesten Version, C++23, mühsam und eingeschränkt an, verglichen mit dem, was in Rust möglich wäre. In den ersten Tagen habe ich manchmal die Möglichkeit vermisst, geschriebenen Code direkt mit dem ausgegebenen Maschinencode zu korrelieren, wie es in C++ möglich ist, aber das ist in 99 Prozent der Fälle absolut unnötig, und moderne Compiler sind bei der Optimierung ohnehin viel kompetenter als Menschen.

Was das Tooling-Ökosystem und die Integration angeht, ist Rust auf einer ganz anderen Ebene und viel mehr auf der Höhe der Zeit in der heutigen Web-Entwicklungswelt. Während ich mit der C++-Sprache und dem Compiler oft darum kämpfe, die Dinge richtig zu machen, scheinen mich die Strenge von Rust, das Typsystem, die vernünftigen Vorgaben und der Borrow Checker ganz natürlich zu den richtigen Designentscheidungen zu führen – contend vs. guide. Wenn mein Rust-Code erfolgreich gebaut wird und die Tests bestehen, kann ich das Projekt mit der Gewissheit verlassen, dass die Software während der Laufzeit nicht abstürzt und der Code nicht einfach von einem Kollegen gebrochen werden kann. Auch die Rust-Makrosysteme und das hochwertige Paket-Ökosystem mit Bibliotheken sowie Plugin-Tools für das Build-System machen einen großen Unterschied in der Produktivität.

Diese und andere Aspekte machen die Arbeit mit Rust äußerst angenehm. Sie machen Entwickler glücklich. Es gibt einen Grund, warum Rust in der Stack Overflow-Entwicklerumfrage nun schon neun Jahre in Folge die am meisten gewünschte Programmiersprache ist.

Dividenden

Rust ist sehr gut für den Produktionseinsatz geeignet, sogar in kritischen Systemen, die Sicherheitszertifizierungen erfordern (z.B. durch die Verwendung der Ferrocene Toolchain). Ich halte die Einführung von Rust für einen logischen Schritt, um die Vorteile der Speichersicherheit, der hohen Produktivität und der größeren Zufriedenheit der Entwickler schon heute zu nutzen, anstatt zu warten, bis die aktuellen Tools mit dem Rest der Welt Schritt halten. Hinzu kommt die Möglichkeit, durch das Erlernen einer neuen Programmiersprache ein besserer Entwickler in jeder anderen Programmiersprache zu werden.

Wenn es um das Lernen im Allgemeinen geht, neige ich immer dazu, eine positive Einstellung zu bewahren: Die Menschen sind viel fähiger, als wir vielleicht denken. Ja, die Lernkurve für Rust ist steiler als die der meisten anderen Sprachen, aber sie ist es wert und zahlt sich langfristig aus. Ich würde eine steile Lernkurve und vernünftige und strenge Sprachregeln und -garantien jederzeit einem Leben mit Software-Speichersicherheitsfehlern vorziehen.

Das Training von Kris van Rens wird einmal im Jahr angeboten.