Kotlin (Programmiersprache)

Aus InkluPedia
Kotlin
Kotlin-logo.png
Logo
Paradigmen Objektorientierte Programmiersprache
Erscheinungsjahr 2016
Designer JetBrains
Entwickler JetBrains und Open-Source-Entwickler
Aktuelle Version 1.4.30
(3. Februar 2021)
Typisierung statisch, stark
Beeinflusst von Java, Scala
Betriebssystem Jedes mit einer JVM oder JavaScript-Interpreter
Lizenz Apache
Website kotlinlang.org

Kotlin ist eine objektorientierte, statisch typisierte Programmiersprache[1] für die Java Virtual Machine (JVM), den Betriebssystemen Android und Apple iOS sowie Webbrowser des tschechischen Unternehmens JetBrains. Kotlin ist Open Source, steht unter der Apache-Lizenz, ist mit Java kompatibel, der Kotlin-Compiler kann Java-Bytecode ausgeben und der Java Kotlin-Code kann Java-Code aufrufen. Gegenüber Java zeichnet sich Kotlin durch eine gute Performance, Sicherheit und gut lesbare Syntax aus. Kotlin ist nach der gleichnamigen russischen Insel im Finnischen Meerbusen benannt.[2] Im russischen Sankt Petersburg hat das tschechische Unternehmen JetBrains mittlerweile den Hauptstandort für seine Entwicklungen.[3]

Semantik

"Hello, World!"-Beispiel

fun main(args : Array<String>) {
  val scope = "World"
  println("Hello, $scope!")
}

Geschichte

2011 bis 2017

Am 19. Juli 2011 hat JetBrains Kotlin auf der JVM Language Summit vorgestellt. Kotlin war da bereits fast ein Jahr in der Entwicklung.[4] Im Januar 2012 wählte das US-amerikanische Computermagazin Dr. Dobb’s Journal (DDJ) Kotlin zur Prgorammiersprache des Monats.[5]

Im Februar 2012 hat JetBrains den Quellcode von Kotlin als Open-Source-Software unter der Apache Licence 2 bereitgestellt. Die Sourcen stehen auf GitHub zur Verfügung.[3] Am 15. Februar 2016 wurde die Version 1.0 nach über fünf Jahren Entwicklung veröffentlicht.[2] Am 1. März 2017 folgte Version 1.1.[6] Kotlin 1.1 unterstützt erstmals das Kompilieren nach JavaScript und Koroutinen.[7] Mit Googles Wechsel 2017 von Eclipse zu IntellJ IDEA[8] wird auch offiziell Kotlin in Android O/Android Studio 3.0 unterstützt. Kotlin und IntelliJ IDEA stammen beide von JetBrains.[9] Auf der ersten hauseigenen KotlinConf in San Francisco gab Andrey Breslav Anfang November 2017 die Veröffentlichung des Release Candidate für Version 1.2 bekannt. Die wichtigste Neuerung dabei ist die Einführung von Multiplattform-Projekten. Das erlaubt es Entwicklern denselben Code für verschiedene Zielplattformen zu kompilieren. Zunächst wird die Java Virtual Machine und JavaScript unterstützt, Kotlin/Native-Support ist geplant. Weiterhin unterstützt Kotlin/Native nun Apple iOS.[10] Version 1.2 wurde am 28. November 2017 veröffentlicht.[11]

ab 2018

Am 17. April 2018 veröffentlichte Oracle die universelle virtuelle Maschine GraalVM 1.0. Diese unterstützt alle JVM-basierten Sprachen, darunter Java, Scala, Groovy und Kotlin, JavaScript einschließlich Node.js, LLVM-Bitcode und in experimenteller Form Ruby, R und Python.[12][13] In Kotlin 1.2.50 vom 14. Juni 2018 bekam der Compiler den Progressive-Modus, der Fehlerbehebungen und neue Deprecations direkt wirksam macht. Unter anderem wurde auch das Scripting verbessert. So ist es nun beispielsweise möglich, ein Skript in einem Jar zu definieren. Wird der Jar zu einem Compilation-Klassenpfad hinzugefügt, unterstützen Compiler und das IDEA-Plug-in die Skripte automatisch. Weiterhin können Entwickler nun eingegebene externe Variable zu einer Skriptkompilierung hinzufügen. Diese werden von Kotlin dann dann wie globale Variablen behandelt.[14][15] Mit Kotlin 1.2.60 vom 1. August 2018 können Entwickler nun in der ebenfalls von JetBrains stammenden Entwicklungsumgebung IntelliJ IDEA das integrierte Build-System nutzen und nicht mehr an Gradle übergeben.[16][17] Auf der KotlinConf in Amsterdam vom 3. bis zum 5. Oktober 2018 riefen JetBrains und Google gemeinsam die Kotlin Foundation ins Leben, die beide Unternehmen bereits auf der Google I/O 2017 angekündigt hatten. Die Foundation soll die Entwicklung der Programmiersprache fördern und sicherstellen, dass Kotlin freie Software bleibt. Sie verwaltet dabei die Markenrechte für das Projekt, besitzt aber nicht den Code und ernennt den führenden Sprachentwickler. Das bereits als RC veröffentlichte Kotlin 1.3 bringt unter anderem ein neues Modell für die Multiplattformprojekte mit. Koroutinen sind in 1.3 nicht mehr als experimentell gekennzeichnet. Kotlin/Native befindet sich mit 1.3 offiziell in der Betaphase.[18] Am 29. Oktober 2018 wurde Kotlin 1.3 veröffentlicht. Die Koroutinen gelten nun als Stablil. Die Erstellung von Cross-Platform-Projekten wurde weiter verbessert, gilt aber weiter als experimentell. Die neue Kotlin-Version führt das Konzept sogenannter Contracts ein, mit denen Funktionen dem Compiler mitteilen können, wie sie sich verhalten. Zu den weiteren nennenswerten sprachliche Ergänzungen gehören die experimentellen Inline-Klassen und die vier Variablentypen kotlin.UByte, kotlin.UShort, kotlin.UInt, kotlin.ULong für nicht vorzeichenbehaftete (unsigned) Werte. Die experimentellen Variablentypen ermöglichen Low-Level-Funktionen wie Byte-Manipulation.[19][20]

Am 23. Januar 2019 wurde Kotlin 1.3.20 veröffentlicht. Damit lassen sich uber das Kotlin Gradle Plug-in Build Tasks innerhalb eines Projekts parallelisieren. Gradle Kotlin DSL wird für die Entwicklung plattformübergreifender Projekte unterstützt.[21][22] Seit Kotlin 1.3.30 vom 12. April 2019 wird Windows 32 (mingw_x86) als Target ebenfalls unterstützt. Anwender von Windows oder macOS können seit dieser Version ihre Kotlin/Native-Programme für die Plattformen Linux x86-64, arm32, Android und Raspberry PI kompilieren.[23] In Kotlin 1.3.40 vom 19. Juni 2019 sind hauptsächlich der experimentelle Support für NPM, Yarn und Webpack sowie ein neuer Algorithmus für die Typinferenz hinzugekommen.[24] In Kotlin 1.3.50 vom 22. August 2019 ist unter anderem eine neue API zum Messen von Zeiträumen hinzugekommen. Mithilfe dieser API werden Missverständnisse beziehungsweise Programmierfehler durch das Verwenden falscher Einheiten vermieden. Als Preview ist ein neuer Java-to-Kotlin-Konverter für IntelliJ IDEA dabei. Der Debugger verbessert nun das Zusammenspiel mit IntelliJ. Kotlin/Native 1.3.50 bringt unter anderem Erweiterungen bei der Anbindung an Frameworks unter iOS und macOS, Entwickler können mit dieser Version mit der IntelliJ IDEA Ultimate Edition nun Kotlin/Native-Code debuggen.[25] Das Cross-Plattform-Framework NativeScript unterstützt mit Version 6.1 vom 4. September 2019 erstmals Kotlin.[26]

In Kotlin 1.4 vom 17. August 2020 sind einen Projekt-Wizard für neue Kotlin-Projekte und ein Debugger für Koroutinen als wichtigste neue Funktionen hinzugekommen. Der Compiler bedient nun alle Zielplattform einheitlich. Über eine API lassen sich Compiler-Erweiterungen anbinden. Bei den sprachlichen Änderungen kam unter anderem die Umsetzung von SAM-Interfaces (Single Abstract Method) hinzu.[27][28] Am 31. August 2020 wurde die Alpha-Version des Software Development Kits (SDKs) Kotlin Multiplatform Mobile (KMM) für Android Studio veröffentlicht. Damit lassen Cross-Plattform-Applikationen für Android und iOS erstellen. Auf einer gemeinsamen Code-Basis lassen sich innerhalb der gleichen IDE (Integrated Development Environment) dann plattformspezifische Ergänzungen aufsetzen.[29][30] In Kotlin 1.4.30 von 3. Februar 2021 sind ein optional nutzbares neues JVM-Backend mit. Im Zusammenspiel mit Java lassen sich JVM-Namen für Aufrufe über Annotationen ändern. Inline Classes sind nun im Beta-Status. Diese lassen sich als Value Classes einsetzen.[31]

Versionen (Auswahl)

Version Datum
1.0 15. Februar 2016
1.1 1. März 2017
1.1.50 22. September 2017[32]
1.2 28. November 2017[33]
1.2.70 13. September 2018[34]
1.3 29. Oktober 2018
1.3.20 23. Januar 2019
1.3.30 12. April 2019
1.3.40 19. Juni 2019
1.3.50 22. August 2019[35]
1.4 17. August 2020[28]
1.4.20 23. November 2020[36]
1.4.30 3. Februar 2021[37][38]

Literatur

  • 2019: Einstieg in Kotlin: Apps entwickeln mit Android Studio, Thomas Theis, 518 Seiten, Rheinwerk Computing, ISBN 978-3836268721
  • 2019: Kotlin von Kopf bis Fuß: Eine Einführung in die Kotlin-Programmierung, Dawn Griffiths und David Griffiths, 480 Seiten, O'Reilly, ISBN 978-3960091127
  • 2019: Kotlin: Einstieg und Praxis, Karl Szwillus, 360 Seiten, mitp, ISBN 978-3958458536
  • 2020: Kotlin: Das umfassende Handbuch, Michael Kofler, 804 Seiten, Rheinwerk Computing, ISBN 978-3836272773

Weblinks

Quellen

  1. Programmiersprachen: Kotlin profitiert von Android | heise Developer, 12.07.2018
  2. 2,0 2,1 Java-Herausforderer Kotlin erscheint in Version 1.0 | heise online, 15.02.2016
  3. 3,0 3,1 Java-Alternative Kotlin nun Open Source | heise online, 14.02.2012
  4. Hello World | Kotlin Blog, July 19, 2011
  5. Language of the Month: Kotlin | Dr Dobb's, January 20, 2012
  6. Kotlin 1.1 Released with JavaScript Support, Coroutines and more | Kotlin Blog, March 1, 2017
  7. JVM-Sprache: Kotlin 1.1 ist fertig | heise online, 02.03.2017
  8. Kommentar: Kotlin für Android – Googles fremde Lorbeeren | heise online, 19.05.2017
  9. Android Studio 3.0 hat Kotlin an Bord | heise online, 18.05.2017
  10. Programmiersprachen: Kotlin 1.2 RC ist freigegeben und Kotlin/Native unterstützt iOS | heise Developer, 03.11.2017
  11. Programmiersprachen: Kotlin 1.2 vollzieht den Spagat zwischen JVM und JavaScript | heise Developer, 29.11.2017
  12. Oracle veröffentlicht GraalVM 1.0 - Pro-Linux, 23. April 2018
  13. Announcing GraalVM: Run Programs Faster Anywhere | Oracle Developers Blog, April 17, 2018
  14. Kotlin 1.2.50 mit neuem Progressive-Modus für den Compiler | heise Developer, 15.06.2018
  15. Kotlin 1.2.50 is out! | Kotlin Blog, June 14, 2018
  16. Kotlin 1.2.60 vereinfacht den Umgang mit Multiplattformprojekten | heise Developer, 02.08.2018
  17. Kotlin 1.2.60 is out! | Kotlin Blog, August 1, 2018
  18. Programmiersprache: Eine Stiftung für die JVM-Sprache Kotlin | heise Developer, 05.10.2018
  19. Programmiersprache: Kotlin 1.3 stabilisiert die Koroutinen | heise online, 30.10.2018
  20. Kotlin 1.3 Released with Coroutines, Kotlin/Native Beta, and more | Kotlin Blog, October 29, 2018
  21. Kotlin 1.3.20 parallelisiert Gradle Tasks | heise online, 24.01.2019
  22. Kotlin 1.3.20 released | Kotlin Blog, January 23, 2019
  23. Kotlin 1.3.30 verspricht mehr Leistung beim Annotation Processing | heise online, 15.04.2019
  24. Programmiersprachen: Kotlin 1.3.40 liefert Erweiterungen für Kotlin/JS und überarbeitet Typinferenz | heise online, 21.06.2019
  25. Programmiersprache: Kotlin 1.3.50 kann Java-Code besser umwandeln | heise online, 23.08.2019
  26. NativeScript 6.1: Kotlin Support is here!, September 04, 2019
  27. Programmiersprache: Kotlin 1.4 erweitert die Toolchain und einige Sprachelemente | heise online, 18.08.20
  28. 28,0 28,1 Kotlin 1.4 Released with a Focus on Quality and Performance – Kotlin Blog | JetBrains, August 17, 2020
  29. Kotlin Multiplatform Mobile bringt Android und iOS unter einen Hut | heise online, 04.09.2020
  30. Kotlin Multiplatform Mobile Goes Alpha – Kotlin Blog | JetBrains, August 31, 2020
  31. Das Geheimnis der Wombat-Würfel | heise online, 05.02.2021
  32. Kotlin 1.1.50 is out | Kotlin Blog, September 22, 2017
  33. Kotlin 1.2 Released: Sharing Code between Platforms | Kotlin Blog
  34. Kotlin 1.2.70 is Out! | Kotlin Blog, September 13, 2018
  35. Kotlin 1.3.50 released | Kotlin Blog, August 22, 2019
  36. Kotlin 1.4.20 Released – Kotlin Blog | JetBrains, November 23, 2020
  37. Release Kotlin 1.4.30 · JetBrains/kotlin · GitHub, Feb 3, 2021
  38. 1.4.30 Is Released With a New JVM Backend and Language and Multiplatform Features | JetBrains Blog, February 4, 2021