Suche
JVM-los durch die Nacht

Kotlin/Native 0.9 ist erschienen und hat die Features von Kotlin 1.3 im Gepäck

Katharina Degenmann

© Shutterstock / garagestock

Kotlin/Native ist eine Variante der beliebten Programmiersprache, die Kotlin direkt in Maschinencode kompiliert. Das vor Kurzem veröffentlichte Kotlin/Native 0.9 basiert bereits jetzt auf Kotlin 1.3-M2 und der entsprechenden Standardbibliothek. Das heißt, auch die neuen Features der kommenden Sprachversion sind bereits verfügbar.

Kotlin/Native basiert auf der JVM-Sprache Kotlin, die vor allem in der Android-Entwicklung eingesetzt wird. Die Native-Variante löst die Programmiersprache von der Java Virtual Machine, so kann Kotlin genutzt werden, um Maschinencode zu generieren, der ohne zusätzliche VM ausgeführt werden kann. Dazu werden der LLVM-Compiler und eine native Implementierung der Kotlin-Runtime verwendet. Der damit generierte Code ist unabhängig von Plattformen einsetzbar und interoperabel.

Kotlin/Native v0.9 – Neue Features

Auch die neuste Version der Programmiersprache Kotlin, nämlich Kotlin 1.3, steht vor der Tür und so ist es nicht verwunderlich, dass Kotlin/Native ebenfalls mit einer neuen Version aufwartet, Kotlin/Native 0.9. Die aktuelle „JVM-lose“ Variante von Kotlin basiert auf dem Compiler und der Standardbibliothek von Kotlin 1.3-M2. Alle Features der neuen Sprachversion sind also bereits verfügar. Dazu zählen unter anderem Inline-Klassen, Datentypen mit einem postiven Wertebereich inklusive 0 (Unsigned Types) und das Common Random Number Generator API.

Ebenfalls im Gepäck hat Kotlin/Native 0.9 die Untersützung neuer Koroutinen-APIs. Wie auf dem Blog zu lesen ist, werden diese unterstützt, da sie nun nicht mehr experimentell, sondern für den Einsatz in der Produktion geeignet sind. Experimentelle Coroutines von kotlin.coroutines.experimental weder im Compiler noch in der Laufzeit unterstützt. Wo wir gerade bei APIs waren: Die Klassen-APIs AtomicInt, AtomicLong, AtomicNativePtr und AtomicReference wurden ebenfalls von Grund auf überarbeitet.

Bereits in Kotlin/Native 0.8 wurde das Einfrieren von Singleton-Objekten implementiert, was die Erstellung eines zuverlässigen globalen Zustands über mehrere nebenläufige Exekutoren ermöglichte. In Version 0.9 wurden alle Concurrency-Primitiven grundlegend überarbeitet und in das neue Paket kotlin.native.concurrent verschoben. Passend dazu wurde die lazy-Delegation verbessert, um richtig mit eingefrorenen Objekten arbeiten zu können.

API Summit 2018
Christian Schwendtner

GraphQL – A query language for your API

mit Christian Schwendtner (PROGRAMMIERFABRIK)

DDD Summit 2018
Nicole Rauch

Domain-Driven Design für Einsteiger

mit Nicole Rauch (Softwareentwicklung und Entwicklungscoaching)

Portable Standardoperationen fördern

Um eine besser strukturierte Standardbibliothek zu gewährleisten und das Schreiben von Multi-Plattform-Code zu unterstützen, wurde der gesamte Code aus dem konan-Package nach kotlin.native verschoben. Ebenso wurden die Schnittstellen grundlegend überarbeitet und bereinigt, um besser mit dem Multi-Platform-Paradigma von Kotlin übereinzustimmen. Einige Kotlin/Native-spezifische Operationen mit Gegenstücken in der Standardbibliothek wurden auf internal oder private umgestellt, um die Nutzung portabler Standardoperationen zu fördern.

Alle Neuerungen und Einzelheiten sind im Blog-Beitrag von Nikolay Igotti zu finden.

Verwandte Themen:

Geschrieben von
Katharina Degenmann
Katharina Degenmann
Katharina Degenmann hat Politikwissenschaft und Philosophie studiert. Seit Februar 2018 arbeitet sie in der Redaktion der Software & Support Media GmbH und ist nebenbei als freie Journalistin tätig.
Kommentare

Hinterlasse einen Kommentar

2 Kommentare auf "Kotlin/Native 0.9 ist erschienen und hat die Features von Kotlin 1.3 im Gepäck"

avatar
400
  Subscribe  
Benachrichtige mich zu:
Bughunter
Gast

nicht-signierte Typen .. ymmd!

Redaktion JAXenter
Mitglied

Hallo Bughunter,

danke für den sachdienlichen Hinweis 😉 Wir haben das Ganze noch einmal reviewed und angepasst!

Liebe Grüße,
Dein JAXenter-Team