Jan-Erik Rediger: Entwickler aus allen Programmiersprachen kommen zu Rust

Im Gespräch mit heise Developer redet Jan-Erik Rediger über die Bedeutung der Community und über Anwendungsfelder, für die Rust prädestiniert ist.

In Pocket speichern vorlesen Druckansicht 427 Kommentare lesen
Jan-Erik Rediger: Entwickler aus allen Programmiersprachen kommen zu Rust.
Lesezeit: 9 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

heise Developer: Sie haben 2016 die Rust-Konferenz RustFest ins Leben gerufen. Was war die Motivation dahinter und wie sieht das Konzept aus?

Jan-Erik Rediger: Wir sehen die Programmiersprache Rust nicht nur als technisches Projekt, sondern wollen eine Community drumherum aufbauen, um Leute zu verknüpfen.

Das RustFest ist eine europäische Konferenz, die wir 2016 in Berlin gestartet und von Anbeginn darauf ausgelegt haben, dass sie durch Europa wandert. Wir waren danach in Kiew, in Zürich, in Paris und in Rom. Dieses Jahr wird es im November in Barcelona stattfinden, und wir arbeiten gerade mit Hochdruck an den Vorbereitungen.

Jan-Erik Rediger ist Telemetry Engineer bei Mozilla und seit 2015 aktives Mitglied der internationalen Rust-Community. Schon 2014 begann er, sich mit der Programmiersprache zu beschäftigen, war später Rust Coach und gründete die europäische Rust-Konferenz RustFest, die 2019 in ihre sechste Auflage geht.

Die Konferenz ist auf Europa fokussiert, aber dieses Jahr gibt es sieben verschiedene Rust-Konferenzen, die über die Welt verteilt sind. Zuletzt hatten wir – leider – vor allem den Fokus auf Europa und Nordamerika, aber dieses Jahr starten Konferenzen auf der ganzen Welt. Im März hatten wir die erste in Südamerika – in Uruguay. Im April folgte die erste in China.

heise Developer: Stichwort Community: Wie ist inzwischen bei der Entwicklung der Programmiersprache die Aufteilung zwischen Mozilla und der Community? Was hat sich in den letzten sechs Jahren getan, als heise Developer Graydon Hoare interviewt hat?

Rediger: Seitdem ist einiges passiert. Das Projekt ist ziemlich explodiert. Seit dem 1.0-Release 2015 wurde es organisatorisch umstrukturiert und verbessert. Stand heute arbeiten über 100 Leute in etwa zehn Teams und mehreren Arbeitsgruppen an Rust.

Einige Leute davon sind Mozilla-Mitarbeiter, die dafür bezahlt werden, aber der Großteil der Entwickler arbeitet nicht für Mozilla, sondern kommt unter anderem von großen Firmen wie Google und Intel. Dazu gibt es zahlreiche Freiwillige, die in ihrer Freizeit mithelfen – teilweise Studenten, teilweise Entwickler, die hauptberuflich an anderen Projekten arbeiten.

heise Developer: Hat Mozilla eine steuernde Funktion?

Rediger: Das Projekt ist offen gestaltet mit einem offenen Entscheidungsprozess, an dem sich jeder beteiligen kann. Die Teams haben am Ende die Entscheidungsgewalt. Mozilla selbst hat darauf keinen direkten Einfluss.

Sowohl für das Projekt als auch für Mozilla ist das ein gutes Abkommen, da das Rust-Projekt eigenständig arbeiten kann, aber Mozilla von den Ergebnissen profitiert.

heise Developer: Vor sechs Jahren stand die Browser-Engine Servo im Mittelpunkt der Entwicklung mit Rust. Was sind aktuell nennenswerte Rust-Projekte?

Rediger: Das Servo-Projekt hat sich deutlich weiterentwickelt. Inzwischen haben wir Teile davon in Firefox eingebracht. Eines der ganz großen Projekte war Firefox Quantum, bei dem ein großes Modul aus Servo in Firefox übernommen wurde. Unter anderem ist die Style-Engine ursprünglich für Servo und jetzt für Firefox in Rust geschrieben.

Das nächste größere Projekt ist noch in Arbeit, aber bereits in Firefox enthalten, wenn auch nicht komplett aktiviert: eine Rendering-Engine. Auch sie ist aus Servo entstanden und wird in Firefox eingebaut.

heise Developer: Wie sieht es jenseits von Firefox aus?

Rediger: Es gibt tatsächlich mehrere prominente Beispiele. Alle große Namen der Tech-Szene haben inzwischen ein Auge auf Rust geworfen. Eines der bekannteren Projekte ist, dass Dropbox viele Teile des eigenen Backends in Rust neu gebaut hat.

Wir wissen aber auch von Projekten bei Facebook, bei Google und bei über hundert anderen, kleineren Firmen, die Rust einsetzen oder ausprobieren, um von den Stärken der Programmiersprache zu profitieren.

heise Developer: Gerade in den Anfangszeiten gab es Vergleiche zwischen Rust und Googles Programmiersprache Go. Wie würden Sie die beiden Sprachen heute miteinander vergleichen?

Rediger: Das kommt tatsächlich häufiger auf, zumal Rust vor Version 1.0 sehr ähnlich zu Go war. Aber die beiden Sprachen haben sich in deutlich unterschiedliche Richtungen entwickelt.

Der Ansatz von Rust ist heute genau umgekehrt wie der von Googles Programmiersprache. Go versucht eher aus der höheren Ebene zu kommen und maschinennäher zu werden, während Rust wie auch C eher von der unteren Ebene kommt und von der Maschinenebene her High-Level-Konzepte darauf aufsetzen.

Rust zeichnet aus, dass es Speichersicherheit garantiert. Es legt großen Wert darauf, alle CPUs effizient zu nutzen, und versucht, zeitgemäße Konzepte umzusetzen. Das sehen wir gerade mit der asynchronen Programmierung, die Rust hoffentlich im Lauf des Jahres komplett unterstützen wird.

heise Developer: Können Sie die Motivation hinter Rust 2018 erläutern, das bewusst nicht als Version 2.0 angelegt ist und auf Breaking Changes verzichtet?

Rediger: Das ist eine Folge der Planung, die bereits 2015 begonnen hat. Von Anfang an war das Ziel, dass Rust rückwärtskompatibel bleibt. Code, der zu Beginn geschrieben wurde, soll dauerhaft funktionieren.

Gleichzeitig haben wir seit dem Release 1.0 gemerkt, dass es Punkte gibt, die wir besser hätten umsetzen oder denen wir komfortablere Interfaces hätten mitgeben können. Inzwischen sind wir auch weiter, was bestimmte Techniken angeht, und so ist die Idee einer Edition 2018 entstanden.

Mit ihr wollen wir neue Dinge ausprobieren, aber sie soll gleichzeitig gewährleisten, dass alter Code weiterhin funktioniert. Daher lassen sich in der Edition 2018 neue Features nutzen, sie hat aber einen Modus, mit dem man alten Code weiter verwenden kann.

Ein Problem ist, dass viel Dokumentations- und Unterrichtsmaterial nach wie vor die Idiome der alten Version beschreibt. An der Stelle müssen wir noch Aufholarbeit leisten und die neuen Vorgehensweisen vorantreiben.

heise Developer: Würden Sie für neue Projekte auf jeden Fall Rust 2018 empfehlen?

Rediger: Ja, es ist flexibler, zukunftssicherer und an einigen Stellen auch einfacher. Gerade Entwickler, die mit Rust beginnen, laufen gar nicht erst in einige Probleme hinein, die sie mit der alten Version haben würden.

heise Developer: Können Sie ein paar Anwendungsbereiche nennen, für die sich Rust bei neuen Projekten besonders eignet?

Rediger: Ein wichtiger Bereich ist die Mobilentwicklung. Die App-Entwicklung gerade für unterschiedliche Betriebssysteme läuft häufig darauf hinaus, dass man Code doppelt und dreifach schreibt.

Ein guter Ansatz ist, zumindest den Code der Applikationslogik in Rust zu bauen und auf mehreren Plattformen gleich nutzen zu können. Der Bereich ist mir persönlich äußerst wichtig. Und es gibt sicherlich ein paar Ecken und Kanten, die wir noch ausbügeln müssen.

Ein anderer Bereich ist Embedded und das Internet der Dinge, bei dem man auf Geräte mit begrenzten Ressourcen stößt, beispielsweise IoT-Gateways oder Sensoren. In dieser Ecke dominiert derzeit nach wie vor C, aber wir sehen eine gute Entwicklung bei Rust auch bezüglich von Libraries.

Das stößt auch in der Industrie auf Interesse, zumal C eben nicht die Garantien bezüglich der Sicherheit bietet wie Rust.

heise Developer: Wie sieht es hinsichtlich der Cross-Plattform-Entwicklung jenseits der Applikationslogik aus, also bei der Oberfläche für Android und iOS? Wird es ein einheitliches GUI-Toolkit geben, oder soll sich Rust aus der Entwicklung der Oberfläche heraushalten?

Rediger: Wir halten uns aus dem Bereich GUI besser heraus. Dafür sind die Sprachen Kotlin oder Swift besser geeignet, die zudem die Integration in die jeweilige Plattform haben. Für Rust bleibt die Applikationslogik.

heise Developer: Sehen sie besondere Vorlieben bei Rust-Entwicklern bezüglich Toolchain und Entwicklungsumgebung?

Rediger: Unsere jährliche Umfrage zeigt wenige Überraschungen. Sehr viele Entwickler nutzen Visual Studio Code, aber wir haben auch sehr gute Integration in die IntelliJ-Plattform. Grundsätzlich sehen wir aber alles.

heise Developer: Woher kommen die meisten Rust-Entwickler und was ist ihre Motivation für Rust?

Rediger: Wir sehen Entwickler aus allen Programmiersprachen zu Rust kommen. Natürlich beobachten wir einige C/C++-Entwickler, da Rust in eine ähnliche Nische vordringt. Wir sehen aber auch viele Leute, die von High-Level-Programmiersprachen wie Ruby, Python oder JavaScript kommen.

Für viele sind die Security-Features ein Grund für Rust, aber auch die Paradigmen, die Rust bietet. Für die meisten ist es eher die zweite oder dritte Programmiersprache, die sie lernen.

heise Developer: Welche Rolle spielt die Interoperabilität mit C?

Rediger: Wichtig ist, dass wir mit C-Libraries interagieren können, gerade auch im Embedded-Bereich. Das bedeutet freilich, dass wir das sichere Umfeld verlassen, aber das war von Anbeginn so gedacht. Es war uns immer klar, dass es kaum Entwickler gibt, die ein Projekt komplett umschreiben. Rust kann dazu genutzt werden, iterativ Projekte umzuschreiben, gerade weil man mit anderen Bibliotheken und Sprachen interagieren kann.

Es gibt durchaus noch Probleme von der Rust-Seite, wie das Zusammenspiel funktioniert, aber wir arbeiten daran, die Voraussetzungen zu verbessern.

Das Interview führte Rainald Menge-Sonnentag, Redakteur von heise Developer. (rme)