Die Zukunft von Kotlin: Neuer Compiler, neues Frontend, neues Library-Format

Auf der KotlinConf hat JetBrains die weiteren Pläne für die Programmiersprache Kotlin vorgestellt – sowohl für die kommende Version 1.4 als auch darüber hinaus.

In Pocket speichern vorlesen Druckansicht 18 Kommentare lesen
Die Zukunft von Kotlin: Neuer Compiler, neues Frontend, neues Library-Format
Lesezeit: 3 Min.
Von
  • Björn Bohn
Inhaltsverzeichnis

Andrey Breslav, Lead Language Designer der Programmiersprache Kotlin, hat in seiner Keynote auf der KotlinConf in Kopenhagen einen Blick auf die Zukunft von Kotlin geworfen. Dabei stand neben der im Frühjahr 2020 erscheinenden Version 1.4 auch die allgemeine Marschrichtung der weiteren Entwicklung im Fokus. Um die Qualität und Performance zu steigern, soll Kotlin künftig einen neuen Compiler sowie ein neues Frontend spendiert bekommen. Das bei Kotlin/Native bereits eingesetzte Library-Format KLib soll ebenfalls Einzug in die Programmiersprache halten. Breslav fasst die Vision von Kotlin zusammen: "Wir wollen, das Kotlin auf allen Plattformen glänzen kann."

In einem Blogbeitrag fasst JetBrains den Tenor von Breslavs Ankündigungen zusammen. In der Vergangenheit haben die Kotlin-Entwickler in Zusammenarbeit mit dem Gradle-Team wohl schon kräftig an der Performance geschraubt und beispielsweise den Gradle-Import in Android Studio um das 2,5fache beschleunigt. Allerdings könnten inkrementelle Verbesserungen nicht mit dem Wachstum der Codebasen mithalten – weshalb sich das Kotlin-Team gezwungen sieht, einen neuen Compiler zu integrieren.

Dieser soll vor allem eines sein: schnell. Die Arbeiten würden sich wohl über Jahre hinweg erstrecken, allerdings sollen bereits erste Implementierungen in Kotlin 1.4 landen. Der Umstieg soll also graduell erfolgen. Neben einer hohen Geschwindigkeit soll der Compiler die unterschiedlichen Plattformen unterstützen, die mit Kotlin funktionieren. Außerdem ist eine API für Compiler-Erweiterungen geplant.

Ein großer Faktor für den schnelleren Compiler wird ein neues Frontend sein. Der erste große Schritt in einer Kompilierungs-Pipeline wird umgangssprachlich als Frontend des Compilers bezeichnet. Es analysiert den Code, löst Namen auf und führt eine Typenprüfung durch. Dieser Teil des Compilers funktioniert auch innerhalb der IDE, wenn er Fehler markiert, zu Definitionen navigiert und nach Symbolverwendungen in Projekten sucht. Die Arbeiten daran sind noch nicht abgeschlossen, erste Benchmarks versprechen aber wohl eine 4,5-fach schnellere Abarbeitung.

Wer Kotlin/Native einsetzt, kennt das KLib-Format bereits. Dort dient es zum Verteilen nativer Kotlin-Bibliotheken. Nun soll das Format auch in Kotlin selbst landen und verschiedene Backends und Multiplattformbibliotheken unterstützen. Dadurch sollen Kotlin-Bibliotheken in Zukunft einfacher in verschiedenen Plattformen Verwendung finden. Das Format wird in Kotlin 1.4 noch als experimentell gelten, stabilere Versionen sind für künftige Releases vorgesehen.

Für das im Frühjahr erscheinende Kotlin 1.4 plant JetBrains eine Reihe an Änderungen. Demnach wird es wohl einen Support für SAM-Conversions für Kotlin-Klassen geben. Anders als bei Java wird Kotlin die Umwandlungen aber nicht für jedes Interface mit einer einzigen abstrakten Methode erlauben. Um ein SAM-Interface zu definieren, müssen Entwickler es mit dem Schlüsselwort fun markieren, das angibt, dass es als funktionales Interface dienen kann.

Bislang verbietet Kotlin das Vermischen von Argumenten, die einen expliziten Namen haben, mit denen, die keinen Namen besitzen – außer, wenn Nutzer alle Argumente mit Namen hinter die anderen angliedern. Das führt in einem Fall zu einem unerwünschten Verhalten, in dem alle Argumente in derselben Position bleiben, aber eins in der Mitte einen Namen bekommen soll. Das soll mit Kotlin 1.4 nun behoben sein.

Einen vollständigen Überblick über die Ankündigungen rund um Kotlin bietet JetBrains in einem entsprechenden Blogbeitrag. (bbo)