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

Seite 2: Vergleich zu Go und Rust 2018

Inhaltsverzeichnis

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)