Warum setzen Banken auf C++, obwohl Rust doppelt so effizient ist?
Die Programmiersprache Rust steht schon seit Jahren kurz vor dem großen Durchbruch, und in der Big-Tech-Welt könnte dieser Durchbruch jetzt in greifbarer Nähe sein. Lars Bergstrom, Director of Engineering bei Google, hatte vor Kurzem erklärt, dass sein Team beim Umschreiben von C++-Code festgestellt habe, dass sich "der Aufwand halbiert", wenn der Code in Rust erstellt und gepflegt wird. Von solchen Produktivitätsgewinnen dürfte doch so manches Unternehmen gern profitieren wollen, oder nicht? Nun ja.
Die Finanzbranche scheint es wenig zu scheren. Bei Hedgefonds und Banken sind Rust-Entwickler:innen rar gesät. Krypto stellt eine Ausnahme dar: Sam Tenzer, Senior Recruiter bei Selby Jennings, sagt, er stelle eine "eine hohe Nachfrage nach Low-Latency-Rust-Entwicklern", und ein vor Kurzem veröffentlichter Branchenbericht von Calyptus zeigte einen "großen Anstieg an Jobs, in denen Rust-Erfahrung gefordert wird", oft im Rahmen von smarten Zeitverträgen.
Eine weitere interessante Ausnahme scheint BNP Paribas zu sein: Die französische Bank hat unlängst Steve Taylor eingestellt, der Low-Latency C++-Handelssysteme in Rust programmieren soll. Im Gespräch mit eFinancialCareers hat Taylor die Vorteile und Herausforderungen beleuchtet, die die Sprache im Vergleich zum Branchenstandard C++ mit sich bringt.
Inwiefern Rust besser ist als C++
Wie du vermutlich weißt, ist der Hauptvorteil von Rust gegenüber C++ die Sicherheit. Taylor sagt, dass "Rust, wenn es einmal geschrieben ist, einen großen Prozentsatz von sehr schwer aufzuspürenden Fehlern in Kompilierzeitfehler umwandelt", was bedeutet, dass der Code nicht ordnungsgemäß ausgeführt wird, bis sie behoben sind. Die Bugs, auf die es am effektivsten abzielt, sind diejenigen, bei denen der Code vielleicht "100 Mal funktioniert", aber beim 101. Mal die "Hölle auf Erden" auslöst. Die Verwendung von Rust wird "eine ganze Kategorie von Laufzeitproblemen eliminieren". Der Compiler ist (fast) "schusssicher" und bietet ein gewisses Maß an Komfort, sobald er läuft.
C++ gilt als die schnelle Sprache, doch Taylor sagt, dass "gut geschriebener Rust-Code genauso schnell, manchmal sogar schneller" sei. Das läge daran, dass Rust nur eine veränderbare Referenz erzwingt, was es ermöglicht, "Code auf eine Weise zu optimieren, wie es in C++ nicht möglich" sei. Dieser Ansatz verhindere zum Beispiel Datenwettläufe und mache die Leistung viel vorhersehbarer und damit verbesserungsfähig.
Es ist nicht leicht, sich mit Rust vertraut zu machen, doch wenn man es beherrscht, nehmen die Vorteile exponentiell zu. Taylor sagt, dass man "einen hohen Preis für die Lernkurve zahlt, bevor man dann einen Produktivitätsvorteil heben kann". Letztendlich sagt Taylor, dass Rust "formalisiert, was man eigentlich in C++ auch machen sollte"-
Er fügt hinzu, dass C++ "anmutiger" sei ist, Rust hingegen "wortlastiger". C++ verfügt außerdem über einen umfangreicheren Satz an Bibliotheken, was bedeutet, dass man mit Rust möglicherweise viel mehr von Grund auf neu entwickeln muss, vor allem, wenn man ein Fan von weniger gebräuchlichen Techniken ist.
Inwiefern C++ besser ist als Rust
Die Vorteile von Rust haben auch ihre Nachteile, denn die Sicherheit von Rust löst oft auch Frustration aus. Selbst wenn man "mit Sicherheit weiß, dass der Code in Ordnung sein wird", kann das Potenzial für einen 1:1 Million-Fehler den Fortschritt aufhalten. Rust hat den Ruf, Programmierern leicht von der Hand zu gehen. Taylor widerspricht: "C++ nimmt dich an der Hand, Rust packt dich an der Kehle".
Die Lernkurve ist vielleicht die größte Hürde für eine breite Akzeptanz. Taylor sagt: "Es ist sehr schwer, Rust zu lernen, wenn man nicht dafür bezahlt wird." Er kam zum ersten Mal mit der Sprache in Berührung, als er eine Krypto-Handelsplattform entwickeln sollte, was er zunächst in C++ machen wollte. Die Schwierigkeit der Sprache führt dazu, dass Gelegenheits-Programmierer frühzeitig hinschmeißen und größere Unternehmen davon abgehalten werden, sie zu verwenden, weil es mühsam und teuer wäre, die Mitarbeitenden entsprechend zu schulen. Wenn das Unternehmen den Preis nicht zahlt, bleiben die Kosten an den Mitarbeitenden selbst hängen: Der Calyptus-Bericht besagt, dass Junior-Rust-Entwickler:innen zu den am schlechtesten bezahlten Beschäftigten im Web3-Bereich gehören.
Niedrig bezahlte Rust-Jobs sind ein weiterer Grund dafür, dass sich die Sprache nicht durchsetzt. Tech-Mitarbeitende im Prop-Trading-Bereich fangen an, mit Rust zu experimentieren, aber aufgrund des Mangels an Rust-Jobs mit Spitzengehältern (und einer vergleichsweise großen Anzahl von C++-Jobs) ist es schwer zu garantieren, dass aus diesen Experimenten mehr als nur ein Versuch wird.
Werden Rust-Jobs im Finanzwesen an Beliebtheit zunehmen?
In der Finanzbranche gibt es laut Taylor "Begeisterung für Rust und Frustration darüber, dass es so wenige Rust-Programmierer:innen gibt". Wenn er in der Vergangenheit Rust-Stellen ausgeschrieben habe, habe er "drei Rust-Lebensläufe in drei oder vier Monaten erhalten... und etwa 50 C++-Lebensläufe".
Taylor mutmaßt, dass sich Rust in Zukunft weiter verbreiten wird. Aber leider (und vor allem, weil die Leute anfangen zu glauben, dass das Programmieren an sich aus der Mode kommt) wird es vielleicht immer eine Randerscheinung bleiben.
Have a confidential story, tip, or comment you'd like to share? Contact: +44 7537 182250 (SMS, Whatsapp or voicemail). Telegram: @SarahButcher. Click here to fill in our anonymous form, or email editortips@efinancialcareers.com. Signal also available.
Bear with us if you leave a comment at the bottom of this article: all our comments are moderated by human beings. Sometimes these humans might be asleep, or away from their desks, so it may take a while for your comment to appear. Eventually it will – unless it's offensive or libelous (in which case it won't.)