Programmiersprachen: Kotlin ermöglicht Multi-Plattform-Projekte

Mit der Freigabe der ersten Beta von Version 1.2 der Programmiersprache stellt IDE-Anbieter JetBrains größere Neuerungen wie die Option, Multiplattform-Projekte aufzusetzen, und einige Sprachneuerungen vor.

In Pocket speichern vorlesen Druckansicht
Programmiersprachen: Kotlin ermöglicht Multi-Plattform-Projekte
Lesezeit: 3 Min.
Von
  • Julia Schmidt

Zum Anlass von Kotlins Eintritt in die Betaphase für Version 1.2, wirft JetBrains Roman Belov einen Blick auf die Neuerungen der JVM-Sprache. Bezeichnendstes neues Features ist wohl die Möglichkeit, zukünftig Code besser für die verschiedenen Zielplattformen wiederverwenden zu können. In sogenannten Multiplattformprojekten soll sich Code, den sich Plattformen wie die JVM und JavaScript teilen können, in einem gemeinsamen Modul hinterlegen lassen. Spezifische Elemente finden derweil in entsprechenden Modulen Platz, der Kompiliervorgang wirft Code für beide Teile aus.

Um das umsetzen zu können, lassen sich Abhängigkeiten des allgemeinen vom speziellen Code nun durch erwartete und tatsächliche Deklaration ausdrücken. Während Erstere eine Programmierschnittstelle spezifizieren, sind Letztere entweder eine plattformabhängige Implementierung der API oder ein Typealias, der auf eine Implementierung verweist. Nutzer, die diese Funktion schon vor der Bekanntgabe verwendet haben, müssen eine leichte Anpassung ihrer Projekte vornehmen, da die Schlüsselwörter header und impl in expect und actual umbenannt wurden.

Auch in Sprache und Compiler gibt es Neuerungen, seit dem vorigen Meilenstein etwa ist es möglich, Array-Literale in Annotationen einzusetzen, wobei die Syntax seit dessen Freigabe noch einen Feinschliff erhalten hat und sich nun zudem für vararg-Parameter verwenden lässt. Details diesbezüglich sind im Kotlin-Blog zu finden, wo auch damit einhergehende Änderungen der Syntax beim Einsatz von benannten Argumenten mit vararg beschrieben sind. Eine neue Reflection-API soll überprüfen lassen, ob die lateinit-Variable initialisiert wurde, womit ein Teil eines Vorschlags aus dem Kotlin Evolution und Enhancement Process auf GitHub umgesetzt wurde – der Rest kommt voraussichtlich erst im nächsten Minor Release. Der lateinit-Modifier soll sich nun zudem für Top-Level-Eigenschaften und lokale Variablen verwenden lassen, der Compiler kann Informationen aus Type Casts zur Typinferenz verwenden und er ist mit einer Option ausgestattet, die es ermöglicht, Warnungen wie Fehler zu behandeln (-Werror ).

In Sachen Standardbibliothek ist noch zu erwähnen, dass diese nun kompatibel zum Java-9-Modulsystem ist, das es verbietet, dass mehrere JAR-Dateien Klassen im selbem Paket deklarieren. Um das umsetzen zu können, haben die Entwickler mit kotlin-stdlib-jdk7 und kotlin-stdlib-jdk8 Artefakte als Ersatz für kotlin-stdlib-jre7 und kotlin-stdlib-jre8 erstellt und die als veraltet markierten Deklarationen aus dem kotlin.reflect-Paket aus der kotlin-reflect-Bibliothek entfernt. Außerdem steht nun ein neues Paket für mathematische Operationen in Cross-Plattform-Code zur Verfügung.

Kotlin ist eine statisch typisierte Programmiersprache für die Java Virtual Machine, die besonders gut mit Java und Android umgehen können soll. Der Quellcode soll sich auch in JavaScript transformieren lassen, wodurch sich die Sprache für mehr Plattformen eignet. Die eigentliche Entwicklung der Sprache begann wohl 2010, 2016 feierte JetBrains die Freigabe der ersten Hauptversion. Ziel war wohl unter anderem die Vereinigung von Scalas Sprachmerkmalen mit einem von der Performance an Java erinnernden Compiler. 2017 bekannte sich auch Google zu Kotlin, als es die Sprache offiziell zur Entwicklung von Android-Apps anerkannte und entsprechenden Support versprach und in Android Studio 3.0 auch lieferte.

Siehe dazu auch auf heise Developer:

iX Thema – Einführung in die Programmierung mit Kotlin