Java-Herausforderer: Kotlin M12 mit neuer Syntax fĂĽr Annotationen und Enums
Im aktuellen Release der von JetBrains entwickelten Programmiersprache für die JVM gab es vor allem in Sachen Syntax Neuerungen, die eine Überarbeitung alten Kotlin-Codes nötig machen.
- Julia Schmidt
Das Team hinter der seit 2011 entwickelten Programmiersprache Kotlin hat den zwölften Meilenstein auf dem Weg zur ersten Hauptversion veröffentlicht. Wann genau mit Letzterer zu rechnen ist, bleibt weiterhin offen, da man sich zwar in der Finalisierungsphase befände, aber laut Entwickler Andrey Breslav noch immer die Devise gälte, dass Kotlin fertig sei, wenn es fertig sei.
Als größte Neuerungen,sind wohl die Änderungen in der Sprachsyntax bei Aufzählungen, Annotationen und damit einhergehenden Labels zu nennen. So ähnelt die enum-Syntax jetzt wohl mehr der in Java: Einträge in einer enum-Klasse sind mit Kommas zu trennen, und sollte zusätzlich ein Member der Klasse festgelegt werden, muss das nach den Einträgen erfolgen. Nach dem letzten Eintrag ist in dem Fall ein Semikolon statt eines Kommas zu verwenden.
Da man die eckigen Klammern für zukünftige Zwecke aufheben will, sieht die neue Annotations-Syntax nun eine Auszeichnung nach dem Muster @Foo(args) statt wie bisher [Foo(args)] vor. Sollten die eckigen Klammern weiter genutzt werden, gibt der Compiler eine Warnung aus. Um solche und ähnliche Warnungen schnell beseitigen zu können, hat JetBrains eine "Code Cleanup..."-Aktion bereitgestellt, die den Code automatisch entsprechend korrigiert. Da das "@" vor Erscheinen von Kotlin M12 zu Kennzeichnung von Labeln zum Einsatz kam, hat sich auch hier etwas geändert. Bei ihnen wird das "@" nun nachgestellt und nicht mehr anführend verwendet (loop@ statt @loop).
Darüber hinaus hat das Team traits als veraltet markiert. An ihrer Stelle sollen Entwickler nun auf das aus Java bekannte interface zurückgreifen, da sich beides wohl nicht merklich unterscheidet. Auch Java-spezifische Klassen wurden mit dem Update als veraltet gekennzeichnet, sodass nun kotlin.reflect.KClass statt java.lang.Class und Foo::Class statt javaClass<Foo>() zu verwenden ist. Weitere Informationen zu Neuerungen in der aktuellen Version, wozu auch Verbesserungen des JavaScript-Backends, Ergänzungen in der Standardbibliothek und Support für JUnit-Tests im Gradle-Plug-in für Android zählen, lassen sich in der Bekanntmachung nachlesen.
Kotlin soll sich besonders durch Robustheit auszeichnen und kann durch das Java-Wissen ihrer Entwickler und deren Erfahrung mit IDEs offenbar durch hohe Interoperabilität mit Java und gute Tool-Unterstützung aufwarten. Die Sprache ist objektorientiert und statisch typisiert. Durch ihre Kompatibilität mit Java kann der Kotlin-Compiler Java-Bytecode beziehungsweise Java Kotlin-Code ausgeben und aufrufen. Zusätzlich gibt es einige in Java vermisste Funktionen, und auch domänenspezifische Sprachen lassen sich in Kotlin nutzen.
Siehe hierzu auch auf heise Developer:
- Ein Ăśberblick ĂĽber Java-Alternativen fĂĽr den industriellen Einsatz
- Ein zweiter Blick auf JVM-Programmiersprachen
(jul)