Zum Inhalt springen
Willkommen in der InkluPedia

Kotlin (Programmiersprache): Unterschied zwischen den Versionen

+
(+)
(+)
Zeile 8: Zeile 8:
  | Designer                          = JetBrains
  | Designer                          = JetBrains
  | Entwickler                        = JetBrains und Open-Source-Entwickler
  | Entwickler                        = JetBrains und Open-Source-Entwickler
  | AktuelleVersion                  = 1.8.0
  | AktuelleVersion                  = 1.8.21
  | AktuelleVersionFreigabeDatum      = 12. Januar 2023
  | AktuelleVersionFreigabeDatum      = 25. April 2023<ref>[https://blog.jetbrains.com/kotlin/category/releases/ Releases : The Kotlin Blog | The JetBrains Blog]</ref><ref>[https://github.com/JetBrains/kotlin/releases Releases · JetBrains/kotlin · GitHub]</ref>
  | AktuelleVorabVersion              =
  | AktuelleVorabVersion              =
  | AktuelleVorabVersionFreigabeDatum =
  | AktuelleVorabVersionFreigabeDatum =
Zeile 51: Zeile 51:
In Kotlin 1.5.0 vom 5. Mai 2021 sind wenig Neuerungen sondern viele Stabilisierungen zahlreicher in Kotlin 1.4.x eingeführter Sprachfeatures hinzugekommen.<ref>[https://www.heise.de/news/Programmiersprache-Kotlin-1-5-stabilisert-an-allen-Ecken-und-Enden-6038202.html Programmiersprache Kotlin 1.5: Stabilität an allen Ecken und Enden | heise online, 06.05.2021]</ref> In Kotlin 1.5.20 vom 24. Juni 2021 ist unter anderem die Anbindung an das Project Lombok sowie an JSpecify hinzugekommen. Project Lombok kümmert sich um das Generieren von Boilerplate-Code auf Bytecode-Ebene. JSpecify bietet Annotationen unter anderem für die Null-Safety. Für Kotlin/Native kann der Compiler nun KDoc-Dokumentationskommentare exportieren, um sie in Objective-C-Frameworks zu verwenden. Gradle steuert nun das Parallelisieren von Kotlin-Build-Tasks.<ref>[https://www.heise.de/news/Programmiersprache-Kotlin-1-5-20-arbeitet-mit-Project-Lombok-zusammen-6118373.html Programmiersprache: Kotlin 1.5.20 arbeitet mit Project Lombok zusammen | heise online, 25.06.2021]</ref> Die am 25. August 2021 veröffentlichte Version Kotlin 1.5.30 ist planmäßig die letzte 1.5.x Version. Die Version bringt einige für Kotlin 1.6 geplante Sprachfeatures als Preview mit und lässt sich nativ auf den M1-Prozessoren von Apple verwenden. Bis dahin war Rosetta zum Erstellen und Ausführen von Anwendungen auf Apple Silicon notwendig.<ref>[https://www.heise.de/news/Programmiersprache-Kotlin-1-5-30-bereitet-gewuenschte-Sprachneuerungen-vor-6174689.html Programmiersprache: Kotlin 1.5.30 bereitet gewünschte Sprachneuerungen vor | heise online, 26.08.2021]</ref> In Kotlin 1.6 vom 16. November 2021 sind nun vollständige when-Anweisungen und unterbrechende Funktionen als Elterntypen als stabil freigegeben. Die Umwandlung eines regulären zu einem unterbrechenden Funktionstypen ist darin ebenfalls stabil. Auch zahlreiche weitere Funktionen der Standardbibliothek wurden stabilisiert. Kotlin/JVM setzt ab der Version 1.6 wiederholbare Annotationen sprachübergreifend zu Java ein, das Repeatable Annotations kennt. In Kotlin/Native steht nun der neue Memory Manager zur Verfügung.<ref>[https://www.heise.de/news/Programmiersprache-Kotlin-1-6-versiegelt-when-Anweisungen-6269102.html Programmiersprache: Kotlin 1.6 versiegelt when-Anweisungen | heise online, 17.11.2021]</ref> In Kotlin 1.6.20 vom 4. April 2022 sind mit Context Receivers und Definitely Non-Nullable Types zwei sprachliche Neuerungen in Vorbereitung auf Kotlin 1.7 hinzugekommen. Die Toolchain wurde in 1.6.20 um paralleles Kompilieren von Modulen für die JVM und einen inkrementellen Compiler für JavaScript erweitert. Seit dieser Version haben Multiplattformprojekte nun standardmäßig eine hierarchische Struktur, um Code zwischen ähnlichen Plattformen zu teilen.<ref>[https://www.heise.de/news/Programmiersprache-Kotlin-1-6-20-kompiliert-parallel-und-inkrementell-6662818.html Programmiersprache Kotlin 1.6.20 kompiliert parallel und inkrementell | heise online, 05.04.2022]</ref>
In Kotlin 1.5.0 vom 5. Mai 2021 sind wenig Neuerungen sondern viele Stabilisierungen zahlreicher in Kotlin 1.4.x eingeführter Sprachfeatures hinzugekommen.<ref>[https://www.heise.de/news/Programmiersprache-Kotlin-1-5-stabilisert-an-allen-Ecken-und-Enden-6038202.html Programmiersprache Kotlin 1.5: Stabilität an allen Ecken und Enden | heise online, 06.05.2021]</ref> In Kotlin 1.5.20 vom 24. Juni 2021 ist unter anderem die Anbindung an das Project Lombok sowie an JSpecify hinzugekommen. Project Lombok kümmert sich um das Generieren von Boilerplate-Code auf Bytecode-Ebene. JSpecify bietet Annotationen unter anderem für die Null-Safety. Für Kotlin/Native kann der Compiler nun KDoc-Dokumentationskommentare exportieren, um sie in Objective-C-Frameworks zu verwenden. Gradle steuert nun das Parallelisieren von Kotlin-Build-Tasks.<ref>[https://www.heise.de/news/Programmiersprache-Kotlin-1-5-20-arbeitet-mit-Project-Lombok-zusammen-6118373.html Programmiersprache: Kotlin 1.5.20 arbeitet mit Project Lombok zusammen | heise online, 25.06.2021]</ref> Die am 25. August 2021 veröffentlichte Version Kotlin 1.5.30 ist planmäßig die letzte 1.5.x Version. Die Version bringt einige für Kotlin 1.6 geplante Sprachfeatures als Preview mit und lässt sich nativ auf den M1-Prozessoren von Apple verwenden. Bis dahin war Rosetta zum Erstellen und Ausführen von Anwendungen auf Apple Silicon notwendig.<ref>[https://www.heise.de/news/Programmiersprache-Kotlin-1-5-30-bereitet-gewuenschte-Sprachneuerungen-vor-6174689.html Programmiersprache: Kotlin 1.5.30 bereitet gewünschte Sprachneuerungen vor | heise online, 26.08.2021]</ref> In Kotlin 1.6 vom 16. November 2021 sind nun vollständige when-Anweisungen und unterbrechende Funktionen als Elterntypen als stabil freigegeben. Die Umwandlung eines regulären zu einem unterbrechenden Funktionstypen ist darin ebenfalls stabil. Auch zahlreiche weitere Funktionen der Standardbibliothek wurden stabilisiert. Kotlin/JVM setzt ab der Version 1.6 wiederholbare Annotationen sprachübergreifend zu Java ein, das Repeatable Annotations kennt. In Kotlin/Native steht nun der neue Memory Manager zur Verfügung.<ref>[https://www.heise.de/news/Programmiersprache-Kotlin-1-6-versiegelt-when-Anweisungen-6269102.html Programmiersprache: Kotlin 1.6 versiegelt when-Anweisungen | heise online, 17.11.2021]</ref> In Kotlin 1.6.20 vom 4. April 2022 sind mit Context Receivers und Definitely Non-Nullable Types zwei sprachliche Neuerungen in Vorbereitung auf Kotlin 1.7 hinzugekommen. Die Toolchain wurde in 1.6.20 um paralleles Kompilieren von Modulen für die JVM und einen inkrementellen Compiler für JavaScript erweitert. Seit dieser Version haben Multiplattformprojekte nun standardmäßig eine hierarchische Struktur, um Code zwischen ähnlichen Plattformen zu teilen.<ref>[https://www.heise.de/news/Programmiersprache-Kotlin-1-6-20-kompiliert-parallel-und-inkrementell-6662818.html Programmiersprache Kotlin 1.6.20 kompiliert parallel und inkrementell | heise online, 05.04.2022]</ref>


Mit Kotlin 1.7 vom 4. Mai 2022 änderte JetBrains die Terminologie und veröffentlichte davon zuerst eine Betaversion. In dieser Version ist unter anderem die Builder-Inferenz hinzugekommen, welche das Aufrufen generischer Builder-Funktionen erleichtert. Weiterhin sind einige Collection-Funktionen zurückgekommen und die Definitely Non-Nullable Types sind stabilisiert worden und nun standardmäßig aktiviert.<ref>[https://www.heise.de/news/Programmiersprache-Kotlin-1-7-Beta-bringt-min-und-max-zurueck-7078138.html Programmiersprache: Kotlin 1.7 Beta bringt min() und max() zurück | heise online, 06.05.2022]</ref><ref>[https://blog.jetbrains.com/kotlin/2022/05/kotlin-1-7-0-beta/ Kotlin 1.7.0-Beta Released | The Kotlin Blog, May 4, 2022]</ref> Am 9. Juni 2022 erschien dann 1.7.0. Darin ist die Alphaversion des neuen Kotlin/JVM-Compilers K2 enthalten. Kotlin unterstützt in Gradle nun das inkrementelle Kompilieren von Änderungen innerhalb abhängiger Module, die nicht in Kotlin geschrieben sind. Das ist mit dem automatisierten Build-Management kompatibel. Die Annotationen der Opt-in-Anforderungen sind nun stabil und die Non-nullable Types und die Builder-Inferenz wurde überarbeitet. Für Typargumente steht mit 1.7.0 der Underscore Operator bereit. Damit lässt sich ein Typargument automatisch ableiten, wenn andere Typen bereits festgelegt sind.<ref>[https://www.heise.de/news/Programmiersprache-Kotlin-1-7-enthaelt-Alphaversion-des-neuen-K2-Compilers-7137155.html Programmiersprache: Kotlin 1.7 enthält Alphaversion des neuen K2-Compilers | heise online, 10.06.2022]</ref> In Kotlin 1.8.0 vom 12. Januar 2023 ist ein Compiler-Parameter hinzugekommen, der Optimierungen deaktiviert, um das Debuggen übersichtlicher zu gestalten. Weiterhin sind u. a. zwei experimentelle Funktionen hinzugekommen, um Verzeichnisse rekursiv zu löschen oder zu kopieren. Weggefallen sind das JVM-IR-Backend und die Unterstützung von JVM 1.6 = JDK 6 und JVM 1.7 = JDK 7. Die Standard-Libraries sind nun durchgängig für JDK 8 kompiliert. In Kotlin/Native für Anwendungen ohne JVM gab es Verbesserungen bei der Anbindung an Swift und Objective-C.<ref>[https://www.heise.de/news/Programmiersprache-Kotlin-1-8-schneidet-alte-Zoepfe-ab-und-erweitert-das-Debuggen-7458512.html Programmiersprache Kotlin 1.8 schneidet alte Zöpfe ab und erweitert das Debuggen | heise online, 13.01.2023]</ref>
Mit Kotlin 1.7 vom 4. Mai 2022 änderte JetBrains die Terminologie und veröffentlichte davon zuerst eine Betaversion. In dieser Version ist unter anderem die Builder-Inferenz hinzugekommen, welche das Aufrufen generischer Builder-Funktionen erleichtert. Weiterhin sind einige Collection-Funktionen zurückgekommen und die Definitely Non-Nullable Types sind stabilisiert worden und nun standardmäßig aktiviert.<ref>[https://www.heise.de/news/Programmiersprache-Kotlin-1-7-Beta-bringt-min-und-max-zurueck-7078138.html Programmiersprache: Kotlin 1.7 Beta bringt min() und max() zurück | heise online, 06.05.2022]</ref><ref>[https://blog.jetbrains.com/kotlin/2022/05/kotlin-1-7-0-beta/ Kotlin 1.7.0-Beta Released | The Kotlin Blog, May 4, 2022]</ref> Am 9. Juni 2022 erschien dann 1.7.0. Darin ist die Alphaversion des neuen Kotlin/JVM-Compilers K2 enthalten. Kotlin unterstützt in Gradle nun das inkrementelle Kompilieren von Änderungen innerhalb abhängiger Module, die nicht in Kotlin geschrieben sind. Das ist mit dem automatisierten Build-Management kompatibel. Die Annotationen der Opt-in-Anforderungen sind nun stabil und die Non-nullable Types und die Builder-Inferenz wurde überarbeitet. Für Typargumente steht mit 1.7.0 der Underscore Operator bereit. Damit lässt sich ein Typargument automatisch ableiten, wenn andere Typen bereits festgelegt sind.<ref>[https://www.heise.de/news/Programmiersprache-Kotlin-1-7-enthaelt-Alphaversion-des-neuen-K2-Compilers-7137155.html Programmiersprache: Kotlin 1.7 enthält Alphaversion des neuen K2-Compilers | heise online, 10.06.2022]</ref>
 
In Kotlin 1.8.0 vom 12. Januar 2023 ist ein Compiler-Parameter hinzugekommen, der Optimierungen deaktiviert, um das Debuggen übersichtlicher zu gestalten. Weiterhin sind u. a. zwei experimentelle Funktionen hinzugekommen, um Verzeichnisse rekursiv zu löschen oder zu kopieren. Weggefallen sind das JVM-IR-Backend und die Unterstützung von JVM 1.6 = JDK 6 und JVM 1.7 = JDK 7. Die Standard-Libraries sind nun durchgängig für JDK 8 kompiliert. In Kotlin/Native für Anwendungen ohne JVM gab es Verbesserungen bei der Anbindung an Swift und Objective-C.<ref>[https://www.heise.de/news/Programmiersprache-Kotlin-1-8-schneidet-alte-Zoepfe-ab-und-erweitert-das-Debuggen-7458512.html Programmiersprache Kotlin 1.8 schneidet alte Zöpfe ab und erweitert das Debuggen | heise online, 13.01.2023]</ref> Am 3. April 2023 erschien Kotlin 1.8.20. Darin wurde der K2-Compiler als stabil gekennzeichnet. Als Zielplattform steht nun WebAssembly - zunächst als experimentell gekennzeichnet - direkt zur Verfügung. Sieben Plattformziele (wasm32, iosArm32, watchosX86, mingwX86, linuxArm32Hfp, linuxMips32, linuxMipsel32) für Kotlin/Native wurden in Kotlin 1.8.20 als deprecated gekennzeichnet. Weitere Neuerungen sind u. a. eine Vorschau des Serialisierungs-Plug-ins für den K2-Compiler und eine Anbindung an den JS-IR-Compiler für JavaScript.<ref>[https://www.heise.de/news/Programmiersprache-Kotlin-1-8-20-bringt-direkte-Anbindung-an-WebAssembly-8570626.html Programmiersprache Kotlin 1.8.20 bringt direkte Anbindung an WebAssembly | heise online, 05.04.2023]</ref>


== Versionen (Auswahl) ==
== Versionen (Auswahl) ==
Zeile 97: Zeile 99:
  |-
  |-
  | 1.8.0 || 12. Januar 2023<ref>[https://blog.jetbrains.com/kotlin/2023/01/kotlin-1-8-0-released/ Kotlin 1.8.0 Released | The Kotlin Blog, January 12, 2023]</ref>
  | 1.8.0 || 12. Januar 2023<ref>[https://blog.jetbrains.com/kotlin/2023/01/kotlin-1-8-0-released/ Kotlin 1.8.0 Released | The Kotlin Blog, January 12, 2023]</ref>
|-
| 1.8.20 || 3. April 2023<ref>[https://blog.jetbrains.com/kotlin/2023/04/kotlin-1-8-20-released/ Kotlin 1.8.20 Released | The Kotlin Blog, April 25, 2023]</ref>
|}
|}


62.805

Bearbeitungen