Wer einen Job als Programmierer in den Finanzdienstleistungen finden will, muss meist Python beherrschen. Von den derzeit von Goldman Sachs ausgeschriebenen Stellen verlangen allein 320 Python; bei JP Morgan sind es sogar 809 Stellen. Doch wer in der Zukunft einen Job als Programmierer in der Branche finden will, sollte sich mit einer Nischentechnologie vertraut machen: Rust – richtig gehört, das englische Wort für Rost. Die Anhänger von Rust sind überzeugt, dass es im Kommen ist.
Obgleich die Rust-Kenntnisse kurzfristig kaum einem Bewerber einen Job verschaffen dürften, hält die Technologie doch langsam Einzug in Banken – allerdings sehr langsam. J.P. Morgan weist etwa einen einzigen Job auf, für den Rust verlangt wird. Es handelt sich um einen Big Data-Job. Bei Goldman Sachs sind derzeit sogar keinerlei Rust-Jobs ausgeschrieben. Dies könnte sich aber bald ändern.
„Ich programmiere meist mit Python und ich kenne seine sämtlichen dreckigen und üblen Ecken“, erzählt ein auf quantitative Anwendungen spezialisierter Entwickler, der sich in seiner Freizeit mit Rust beschäftigt. „Im Vergleich dazu fühlt sich Rust erfrischend neu an.“
Die Open Source-Lösung versteht sich selbst als „Systemprogrammierungssprache, die blitzschnell läuft, Fehler vermeidet und Sicherheit vor Bedrohungen bietet.“ Es ist wahrscheinlicher, dass C und C++ von Rust als von Python abgelöst werden. „Rust ist eine Systemprogrammierungssprache, die genutzt werden kann, um große, effiziente und stabile Systeme aufzubauen“, erzählt der Entwickler. „Es könnte zu etwas so Grundlegendem wie ein Betriebssystem oder zu etwas so Schnellem wie das Trading-System eines Hedgefonds eingesetzt werden.“ Derzeit wird im Hochfrequenzhandel meist C++ verwendet, weil es schnell ist. Doch Rust scheint noch schneller zu sein und bietet weitere Vorzüge.
„Seine Sicherheit macht Rust so außerordentlich“, meint der quantitative Entwickler. „Die Sprache wurde so gestaltet, dass sie während der Übersetzungszeit checkt, dass das Programm unter keinen Umständen in unsicheren Speicherkonditionen hängen bleibt.“ Obgleich C++ angeblich ähnliche Eigenschaften aufweist, können diese durch die „Arroganz eines Entwicklers“ umgangen werden, wenn ein Programmierer glaubt, dass seine Programmierung ok ist. „Rust ist so gestaltet: Wenn das Programm tatsächlich beginnt, dann können Sie sicher sein, dass es nicht den Systemspeicher verdirbt, weil es einfach unvorhergesehene Dinge macht“, sagt der Quant.
Damit ist Rust deutlich sicherer als seine Vorgänger. „Rust ist einsetzbar, wo Laufzeitgeschwindigkeit und Sicherheit entscheidend sind“, erzählt ein anderer Entwickler. Derzeit wird die Sprache vor allem von Mozilla für ihren Firefox-Broser verwendet, allerdings erwarten viele, dass sie bald auch von Banken entdeckt wird.
„Technisch gesehen kann man mit Rust alles machen“, sagt der Pythonprogrammierer. „Aktuell erkunde ich seine Fähigkeiten, wie sie für die numerischen und analytischen Programme der Finanzdienstleistungen erforderlich sind – wie die Kursfindung von Derivaten, Optionen usf. Mit Rust habe ich erstmals den Eindruck, dass man einen Kuchen gleichzeitig haben und essen kann.“
Anders als die meisten objektorientierten Programmiersprachen wie C++, Python und Java ist Rust Trait-basiert. Während man in der objektbasierten Programmierung eine Struktur schaffen und ihr Eigenschaften geben müsse, müsse man das Verhalten hier auf einem abstrakteren Level definieren, erzählt der Quant. „Anschließend definieren Sie das Verhalten für spezielle Datenstrukturen und trennen die Daten vom Verhalten.“ Leute, die objektbasiert programmieren, müssten sich daran erst einmal gewöhnen.
Doch der Aufwand lohnt sich. Rust-Anhänger halten dies für die kommende Programmiersprache des 21. Jahrhunderts. „Moderne Software muss für multiple Bedrohungen und Prozesse skalierbar sein und viel mehr mit externem Traffic kommunizieren“, sagt der Quant. „Beim Programmieren von parallelen und asynchronen Programmen in Rust bin ich viel erfolgreicher als mit C++ oder C. Die Sicherheitsprinzipien ermöglichen einem darüber hinaus einen stabilen, erweiterbaren parallelen Code zu schreiben.“
Allerdings gibt es auch Nachteile. So wird Rust bislang kaum verwendet und verhilft einem daher in absehbarer Zukunft zu keinem neuen Job. Die Sicherheitsfunktionen bringen auch Nachteile mit sich, obgleich einige sie für verkraftbar halten. „Als Programmierer müssen Sie pro-aktiver darüber nachdenken, was mit Ihrem Programm schieflaufen könnte“, meint der Quant. „Wenn etwas schieflaufen könnte, dann erlaubt einem Rust gar nicht erst den Binärcode, solange Sie nicht garantieren können, dass nichts passieren kann. Zum Vergleich: In C können Sie einfach einen unsicheren Binärcode schaffen und ihn auf unsichere Weise einsetzen. Das ist auch der Grund, wieso es so viele fehlerhafte Programmierungen gibt.“
Der Einsatz von Rust wächst langsam. Laut einer Erhebung von Github landete Rust in der Beliebtheit der Nutzer auf dem 18. Platz. Dagegen sicherten sich JavaScript, Python, Java und C++ die Spitzenpositionen und Go wächst zumindest deutlich schneller. Rust-Anhänger halten Go aber für fehleranfälliger. Außerdem sei es noch zu früh, um den Erfolg von Rust beurteilen zu können.
„Die Arbeit mit Rust macht einfach Spaß. Es bringt viele Vorteile mit. Wenn sich erst einmal sein Umfeld entwickelt hat, dann wird es zu einer richtigen Perle“, meint ein Entwickler.
““