Programmiersprachen: Kotlin/Native 0.5 ermöglicht Aufrufe aus C, Swift und Objective-C
Die fĂĽr plattformspezifische Binaries vorgesehene Umsetzung von JetBrains Programmiersprache bietet nun Methoden zum Kompilieren von Bibliotheken, ĂĽber die Entwickler mit Apples Programmiersprachen und aus C Kotlin-Code aufrufen.

JetBrains hat in einem Blogbeitrag Kotlin/Native 0.5 als Weihnachtsausgabe der nativen Ausprägung von Kotlin vorgestellt. Die große Neuerung ist, dass sich nun Kotlin-Code aus C-, Swift- und Objective-C-Programmen aufrufen lässt. Außerdem läuft Kotlin/Native neuerdings mit LLVM 5.0.0 zusammen und WebAssembly-Code lässt sich nicht mehr nur aus macOS, sondern auch von Windows und Linux über -target wasm32 erstellen.
Apples Programmiersprachen Swift und Objective-C werden über ein Framework angebunden, das Entwickler über die Compiler-Option -produce framework erstellen. Die darin enthaltenen Funktionen lassen sich so aufrufen, als seien sie in Swift verfasst. JetBrains hat als Beispiel einen Taschenrechner für iOS auf GitHub veröffentlicht, dessen mathematische Funktionen in Kotlin/Native verfasst sind, während die Nutzerschnittstelle in Swift geschrieben ist.
(Bild: JetBrains)
Über die Compiler-Option -produce dynamic erstellen Entwickler dynamische Bibliotheken für Windows als .dll, für macOS als .dylib und für Linux als .so. Darüber können sie die Kotlin-Funktionen analog zu C-Code aufrufen. Die C-Anbindung lässt sich wiederum als Brücke zur Anbindung anderer Sprachen verwenden, wie ein Beispiel mit Python zeigt, das ebenfalls auf GitHub zu finden ist.
JVM-Sprache ohne Java Virtual Machine
JetBrains hat Kotlin ursprünglich für die Java Virtual Machine (JVM) entwickelt, die aber nicht auf allen Plattformen vorhanden ist. Die Hauptmotivation für Kotlin/Native ist somit nicht die bessere Performance von Binärcode, sondern die Cross-Platform-Unterstützung, die sonst das Argument für Bytecode und gegen native Binaries ist.
Hinsichtlich der Zielplattformen für Kotlin/Native hob JetBrains bei der Vorstellung auf der KotlinConf iOS heraus. Während der Weg zu Android üblicherweise über die ohnehin vorhandene JVM geht, können Entwickler auf Apples Mobilplattform keine JVM voraussetzen. Dasselbe gilt für zahlreiche Embedded Devices. Ein grundsätzliches Anwendungsfeld für Kotlin/Native sind Applikationen, die unabhängig von der Außenwelt bleiben sollen.
Kotlin/Native ist derzeit für Windows, Linux, macOS, iOS, Android und WebAssembly verfügbar, wobei es aktuell noch Einschränkungen bezüglich der Hardware gibt. Details lassen sich der Übersichtsseite entnehmen. Weitere Neuerungen von Kotlin/Native 0.5 wie die Integration des seit Kotlin 1.2 im Kern der Programmiersprache enthaltenen kotlin.math-Pakets sind in einem Kotlin-Blogbeitrag zu finden, der Links zu Binaries für die 64-bit-Varianten von macOS, Linux und Windows enthält. (rme)