EIn Blick in die Kotlin-Glaskugel!

Kotlin 1.4: Diese Features sind für 2020 geplant

Katharina Degenmann

© Shutterstock / Shutter_M

Zwar soll Kotlin 1.4 erst im Frühjahr 2020 erscheinen, doch im Zuge der KotlinConf wurden neben ersten Highlights auch strategische Pläne der Programmiersprache bekanntgeben. Wir haben uns die wichtigsten Neuerungen und Ziele der kommenden Version einmal genauer angesehen.

Das Team von JetBrains nutzte die KotlinConf unter anderem dafür, die strategischen Pläne für die Entwicklung von Kotlin und Pläne für Kotlin 1.4, das im nächsten Jahr erscheinen soll, zu präsentieren. Was kommt da auf uns zu?

Kotlin 1.4: Die wichtigsten Neuerungen

Vor allem wird sich Kotlin 1.4 auf Qualität und Leistung konzentrieren, so Andrey Breslav, der leitende Kotlin-Sprachdesigner bei JetBrains in seiner Eröffnungskeynote der KotlinConf. Hierfür sei eine ständige Weiterentwicklung der Sprache unabdingbar, dennoch sei die Verbesserung des Gesamterlebnisses wichtiger als das Hinzufügen großer Features.

Neue Compiler in Arbeit

Inkrementelle Verbesserungen können wohl nicht mit dem natürlichen Wachstum der Produktions-Codebase Schritt halten, weshalb in der kommenden Kotlin-Version ein neuer und vor allem schnellerer Compiler implementiert werden soll. Neben Schnelligkeit zielt der neue Compiler zudem darauf ab, alle Plattformen, die Kotlin unterstützt, zu vereinheitlichen und ein API für Compiler-Erweiterungen bereitzustellen. Obwohl die Arbeit am neuen Compiler wohl mehrere Jahre in Anspruch nehmen wird, sind einige Teile dieser neuen Implementierung bereits in 1.4 zu erwarten.

Das Kotlin-Library-Format

Eine weitere Neuerung, die uns mit Kotlin 1.4 erreichen soll, ist das Kotlin-Library-Format. Um eine Multiplattform-Bibliothek in Kotlin aufzubauen und so zu versenden, benötigt man ein Distributionsformat, das auf jeder Plattform gleichermaßen funktioniert. Und hier kommt KLib ins Spiel: ein Bibliotheksformat für die Kotlin-Multiplattform.

Eine KLib-Datei enthält eine serialisierte internal representation (IR). Der Code kann IR als Abhängigkeit hinzufügen, wobei das Compiler-Backend die IR aufnehmen und ausführbaren Code für die angegebene Plattform generieren wird. Dabei besteht eine Analogie zum Bytecode, denn auch KLibs kann man ähnlich wie JVM-Bytecode analysieren und transformieren. Jede Transformation des serialisierten IR wirkt sich auf jede Plattform aus, für die die KLib verwendet wird.

Tatsächlich nutzt Kotlin/Native das KLibs-Format seit geraumer Zeit, um native Kotlin-Bibliotheken zu verteilen. Nun wird das Format erweitert, um weitere Backends und Multiplattform-Bibliotheken zu unterstützen. Das KLibs-Format soll in Kotlin 1.4 in einem experimentellen Status zur Verfügung gestellt werden. Ein stabiles API dafür sei in Arbeit.

Neue Sprachfunktionen

Auch im Bereich Sprache sind einige Neuerungen geplant. Auf Wunsch der Community werde beispielsweise der Support für SAM-Konvertierungen für Kotlin-Klassen (KT-7770) eingeführt. Ebenso wird es mit der bevorstehenden Kotlin-Version möglich sein, benannte und positionelle Argumente zu mischen.

Weitere Informationen

Wie auf der KotlinConf ebenfalls bekanntgegeben wurde, wird aktuell auch noch an weiteren Baustellen gearbeitet, allerdings werden die Ergebnisse noch nicht in Kotlin 1.4 sichtbar sein. So sei die Schnelligkeit des neuen Compilers auf eine neue Frontend-Implementierung zurückzuführen. Der erste große Schritt werde umgangssprachlich als Frontend des Compilers bezeichnet. Die Implementierung ist aktuell allerdings noch nicht abgeschlossen und wird daher nicht in 1.4 zur Verfügung stehen.

Nachdem das Frontend die Analyse des Codes abgeschlossen hat, generiert ein Backend die ausführbaren Dateien. Kotlin verfügt generell über drei Backends, nämlich: Kotlin/JVM, Kotlin/JS und Kotlin/Native. Die ersten beiden wurden unabhängig voneinander geschrieben und teilen kaum gemeinsamen Code. Als Kotlin/Native eingeführt wurde, basierte es auf einer neuen Infrastruktur, die wiederum auf einer internen Repräsentation (IR) für Kotlin-Code aufbaut. Die IR erfüllt eine Funktion, die dem Bytecode in virtuellen Maschinen ähnlich ist, weshalb die beiden anderen Backends (Kotlin/JVM und Kotlin/JS) auf das gleiche IR migriert werden. Dieser Schritt wird noch einige Zeit in Anspruch nehmen, weshalb es auch hier unwahrscheinlich ist, dass sie standardmäßig in Kotlin 1.4 enthalten ist.

Alle weiteren Neuerungen und strategischen Pläne von Kotlin 1.4 stehen im Blogbeitrag von JetBrains zum Nachlesen bereit.

Verwandte Themen:

Geschrieben von
Katharina Degenmann
Katharina Degenmann
Katharina ist hauptberuflich hilfsbereite Online- und Print-Redakteurin sowie Bücher- und Filme-Junkie. Nebenbei ist sie Möchtegern-Schriftstellerin, die heimlich hofft, eines Tages ihr Geld als Kaffee-Testerin zu verdienen. Seit Februar 2018 arbeitet sie als Redakteurin bei der Software & Support Media GmbH, davor hat sie Politikwissenschaft und Philosophie studiert.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: