Kotlin/Native 0.8 bringt Überarbeitungen für Nebenläufigkeit, Bibliothek und iOS

Die neue Version der Programmiersprache Kotlin/Native konzentriert sich auf drei Bereiche: Nebenläufigkeit, die Standardbibliothek und iOS-Entwicklung.

In Pocket speichern vorlesen Druckansicht
Kotlin/Native 0.8 bring Überarbeitungen für Nebenläufigkeit, Bibliothek und iOS
Lesezeit: 2 Min.
Von
  • Björn Bohn

Jetbrains hat Version 0.8 der Programmiersprache Kotlin/Native veröffentlicht. Der tschechische Toolhersteller hat sich dabei vor allem auf drei Punkte konzentriert: nebenläufige Programmierung, Funktionserweiterung der Standardibliothek sowie Überarbeitungen für die iOS-Entwicklung. Außerdem gab es kleinere Performance- und Usability-Änderungen.

Vor der neuen Version haben Kotlin/Native-Applikationen den Zustand eines einzelnen Objekts lokal zu einem bestimmten ausgeführten Thread gehalten, sodass dieser in verschiedenen Threads nicht synchronisiert sein konnte. In der aktuellen Version ist aber das Teilen eines unveränderbaren Zustands erlaubt. Der Code

object Config {
var width: Int = 10
private set
init {
val file = fopen("config.txt", "r")
if (file != null) {
try {
memScoped {
val bufferLength = 2 * 1024
val buffer = allocArray(bufferLength)
while (true) {
val nextLine = fgets(buffer, bufferLength, file)?.toKString()
if (nextLine == null || nextLine.isEmpty()) break
val records = nextLine.split('=')
if (records.size != 2) continue
val key = records[0].trim()
val value = records[1].trim()
when (key) {
"width" -> width = value.toInt()
}
}
}
} finally {
fclose(file)
}
}
}
}

liest die Konfigurationsdatei und kann später die config.width-Eigenschaft zur Verfügung stellen. Die Config-Datei wird einmal pro Prozessausführung gelesen und ist für jeden Thread oder Worker zugänglich. Einmal veröffentlicht wird das Objekt eingefroren und Entwickler können es nicht mehr modifizieren. Atomare Werte und Referenzen sollen den Support für Nebenläufigkeit weiter verbessern.

Die Standardbibliothek von Kotlin/Native folgt jetzt demselben Standard wie andere Kotlin-Varianten und nutzt einen Except/Actual-Mechanismus und hat sich anderen Kotlin-Ausgaben angepasst. Außerdem ist der Zufallszahlengenerator und die Collection-Shuffling-Funktion jetzt verfügbar, sodass Entwickler keine plattformspezifischen APIs mehr für diesen Zweck benötigen.

Mehr Infos

Was ist Kotlin/Native?

Kotlin/Native ist eine native Implementierung der ursprünglich für die JVM entwickelten Programmiersprache Kotlin. Anders als beispielsweise bei Java-Code spielt für die native Umsetzung nicht die Performance die wichtigste Rolle, sondern die Cross-Platform-Unterstützung, die sonst das Argument für Bytecode und gegen native Binaries ist.

Für iOS-Entwickler hat JetBrains einige Probleme behoben, die eine Veröffentlichung im AppStore verhindert haben. Außerdem soll ein Framework-Initialisierungsproblem behoben worden sein. Darüber hinaus bietet Kotlin/Native jetzt auch Unterstützung für 32-Bit-ARM-iOS, sodass ältere Geräte mit der Sprache verwendet werden können.

Sowohl das AppCode- als auch das CLion-Plug-in für Kotlin/Native funktionieren bereits mit Version 0.8. Die Binaries sind als Download für macOS, Linux und Windows auf der JetBrains-Seite zu finden. Das Projekt findet sich ebenfalls auf GitHub. (bbo)