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.3.50
  | AktuelleVersion                  = 1.4
  | AktuelleVersionFreigabeDatum      = 22. August 2019
  | AktuelleVersionFreigabeDatum      = 17. August 2020
  | AktuelleVorabVersion              =  
  | AktuelleVorabVersion              =  
  | AktuelleVorabVersionFreigabeDatum =  
  | AktuelleVorabVersionFreigabeDatum =  
Zeile 22: Zeile 22:
  | Website                          = [https://kotlinlang.org/ kotlinlang.org]
  | Website                          = [https://kotlinlang.org/ kotlinlang.org]
}}
}}
'''Kotlin''' ist eine objektorientierte, statisch typisierte Programmiersprache<ref>[https://www.heise.de/developer/meldung/Programmiersprachenstudie-Kotlin-profitiert-von-Android-4108387.html Programmiersprachen: Kotlin profitiert von Android | heise Developer, 12.07.2018]</ref> für die Java Virtual Machine (JVM), den Betriebssystemen [[Android (Betriebssystem)|Android]] und [[Apple iOS]] sowie Webbrowser des [[Tschechien|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 [[Russland|russischen]] Insel im [[Finnland|Finnischen]] Meerbusen benannt.<ref name="heise3103333">[http://www.heise.de/newsticker/meldung/Java-Herausforderer-Kotlin-erscheint-in-Version-1-0-3103333.html Java-Herausforderer Kotlin erscheint in Version 1.0 | heise online, 15.02.2016]</ref> Im russischen [[Sankt Petersburg]] hat das tschechische Unternehmen JetBrains mittlerweile den Hauptstandort für seine Entwicklungen.<ref name="heise1434065">[http://www.heise.de/newsticker/meldung/Java-Alternative-Kotlin-nun-Open-Source-1434065.html Java-Alternative Kotlin nun Open Source | heise online, 14.02.2012]</ref>
'''Kotlin''' ist eine objektorientierte, statisch typisierte Programmiersprache<ref>[https://www.heise.de/developer/meldung/Programmiersprachenstudie-Kotlin-profitiert-von-Android-4108387.html Programmiersprachen: Kotlin profitiert von Android | heise Developer, 12.07.2018]</ref> für die Java Virtual Machine (JVM), den Betriebssystemen [[Android (Betriebssystem)|Android]] und [[Apple iOS]] sowie Webbrowser des [[Tschechien|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 [[Russland|russischen]] Insel im [[Finnland|Finnischen]] Meerbusen benannt.<ref name="heise3103333">[http://www.heise.de/newsticker/meldung/Java-Herausforderer-Kotlin-erscheint-in-Version-1-0-3103333.html Java-Herausforderer Kotlin erscheint in Version 1.0 | heise online, 15.02.2016]</ref> Im russischen [[Sankt Petersburg]] hat das tschechische Unternehmen JetBrains mittlerweile den Hauptstandort für seine Entwicklungen.<ref name="heise1434065">[http://www.heise.de/newsticker/meldung/Java-Alternative-Kotlin-nun-Open-Source-1434065.html Java-Alternative Kotlin nun Open Source | heise online, 14.02.2012]</ref>


== Semantik ==
== Semantik ==
Zeile 41: Zeile 41:


=== ab 2018 ===
=== 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.<ref>[https://www.pro-linux.de/news/1/25827/oracle-ver%C3%B6ffentlicht-graalvm-10.html Oracle veröffentlicht GraalVM 1.0 - Pro-Linux, 23. April 2018]</ref><ref>[https://blogs.oracle.com/developers/announcing-graalvm Announcing GraalVM: Run Programs Faster Anywhere | Oracle Developers Blog, April 17, 2018]</ref> 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.<ref>[https://www.heise.de/developer/meldung/Kotlin-1-2-50-mit-neuem-Progressive-Modus-fuer-den-Compiler-4079063.html Kotlin 1.2.50 mit neuem Progressive-Modus für den Compiler | heise Developer, 15.06.2018]</ref><ref>[https://blog.jetbrains.com/kotlin/2018/06/kotlin-1-2-50-is-out/ Kotlin 1.2.50 is out! | Kotlin Blog, June 14, 2018]</ref> 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.<ref>[https://www.heise.de/developer/meldung/Kotlin-1-2-60-vereinfacht-den-Umgang-mit-Multiplattformprojekten-4127005.html Kotlin 1.2.60 vereinfacht den Umgang mit Multiplattformprojekten | heise Developer, 02.08.2018]</ref><ref>[https://blog.jetbrains.com/kotlin/2018/08/kotlin-1-2-60-is-out/ Kotlin 1.2.60 is out! | Kotlin Blog, August 1, 2018]</ref> 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.<ref>[https://www.heise.de/developer/meldung/Programmiersprache-Neuheiten-von-der-KotlinConf-4181685.html Programmiersprache: Eine Stiftung für die JVM-Sprache Kotlin | heise Developer, 05.10.2018]</ref> 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.<ref>[https://www.heise.de/developer/meldung/Programmiersprache-Kotlin-1-3-stabilisiert-die-Koroutinen-4206618.html Programmiersprache: Kotlin 1.3 stabilisiert die Koroutinen | heise online, 30.10.2018]</ref><ref>[https://blog.jetbrains.com/kotlin/2018/10/kotlin-1-3/ Kotlin 1.3 Released with Coroutines, Kotlin/Native Beta, and more | Kotlin Blog, October 29, 2018]</ref>
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.<ref>[https://www.pro-linux.de/news/1/25827/oracle-ver%C3%B6ffentlicht-graalvm-10.html Oracle veröffentlicht GraalVM 1.0 - Pro-Linux, 23. April 2018]</ref><ref>[https://blogs.oracle.com/developers/announcing-graalvm Announcing GraalVM: Run Programs Faster Anywhere | Oracle Developers Blog, April 17, 2018]</ref> 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.<ref>[https://www.heise.de/developer/meldung/Kotlin-1-2-50-mit-neuem-Progressive-Modus-fuer-den-Compiler-4079063.html Kotlin 1.2.50 mit neuem Progressive-Modus für den Compiler | heise Developer, 15.06.2018]</ref><ref>[https://blog.jetbrains.com/kotlin/2018/06/kotlin-1-2-50-is-out/ Kotlin 1.2.50 is out! | Kotlin Blog, June 14, 2018]</ref> 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.<ref>[https://www.heise.de/developer/meldung/Kotlin-1-2-60-vereinfacht-den-Umgang-mit-Multiplattformprojekten-4127005.html Kotlin 1.2.60 vereinfacht den Umgang mit Multiplattformprojekten | heise Developer, 02.08.2018]</ref><ref>[https://blog.jetbrains.com/kotlin/2018/08/kotlin-1-2-60-is-out/ Kotlin 1.2.60 is out! | Kotlin Blog, August 1, 2018]</ref> 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.<ref>[https://www.heise.de/developer/meldung/Programmiersprache-Neuheiten-von-der-KotlinConf-4181685.html Programmiersprache: Eine Stiftung für die JVM-Sprache Kotlin | heise Developer, 05.10.2018]</ref> 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.<ref>[https://www.heise.de/developer/meldung/Programmiersprache-Kotlin-1-3-stabilisiert-die-Koroutinen-4206618.html Programmiersprache: Kotlin 1.3 stabilisiert die Koroutinen | heise online, 30.10.2018]</ref><ref>[https://blog.jetbrains.com/kotlin/2018/10/kotlin-1-3/ Kotlin 1.3 Released with Coroutines, Kotlin/Native Beta, and more | Kotlin Blog, October 29, 2018]</ref>


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.<ref>[https://www.heise.de/developer/meldung/Kotlin-1-3-20-parallelisiert-Gradle-Tasks-4286235.html Kotlin 1.3.20 parallelisiert Gradle Tasks | heise online, 24.01.2019]</ref><ref>[https://blog.jetbrains.com/kotlin/2019/01/kotlin-1-3-20-released/ Kotlin 1.3.20 released | Kotlin Blog, January 23, 2019]</ref> 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.<ref>[https://www.heise.de/developer/meldung/Kotlin-1-3-30-verspricht-mehr-Leistung-beim-Annotation-Processing-4399812.html Kotlin 1.3.30 verspricht mehr Leistung beim Annotation Processing | heise online, 15.04.2019]</ref> 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.<ref>[https://www.heise.de/developer/meldung/Kotlin-1-3-40-liefert-Erweiterungen-fuer-Kotlin-JS-und-ueberarbeitet-Typinferenz-4452678.html Programmiersprachen: Kotlin 1.3.40 liefert Erweiterungen für Kotlin/JS und überarbeitet Typinferenz | heise online, 21.06.2019]</ref> 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.<ref>[https://www.heise.de/developer/meldung/Programmiersprache-Kotlin-1-3-50-kann-Java-Code-besser-umwandeln-4503272.html Programmiersprache: Kotlin 1.3.50 kann Java-Code besser umwandeln | heise online, 23.08.2019]</ref> Das Cross-Plattform-Framework NativeScript unterstützt mit Version 6.1 vom 4. September 2019 erstmals Kotlin.<ref>[https://www.nativescript.org/blog/nativescript-6.1-kotlin-support-is-here NativeScript 6.1: Kotlin Support is here!, September 04, 2019]</ref>
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.<ref>[https://www.heise.de/developer/meldung/Kotlin-1-3-20-parallelisiert-Gradle-Tasks-4286235.html Kotlin 1.3.20 parallelisiert Gradle Tasks | heise online, 24.01.2019]</ref><ref>[https://blog.jetbrains.com/kotlin/2019/01/kotlin-1-3-20-released/ Kotlin 1.3.20 released | Kotlin Blog, January 23, 2019]</ref> 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.<ref>[https://www.heise.de/developer/meldung/Kotlin-1-3-30-verspricht-mehr-Leistung-beim-Annotation-Processing-4399812.html Kotlin 1.3.30 verspricht mehr Leistung beim Annotation Processing | heise online, 15.04.2019]</ref> 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.<ref>[https://www.heise.de/developer/meldung/Kotlin-1-3-40-liefert-Erweiterungen-fuer-Kotlin-JS-und-ueberarbeitet-Typinferenz-4452678.html Programmiersprachen: Kotlin 1.3.40 liefert Erweiterungen für Kotlin/JS und überarbeitet Typinferenz | heise online, 21.06.2019]</ref> 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.<ref>[https://www.heise.de/developer/meldung/Programmiersprache-Kotlin-1-3-50-kann-Java-Code-besser-umwandeln-4503272.html Programmiersprache: Kotlin 1.3.50 kann Java-Code besser umwandeln | heise online, 23.08.2019]</ref> Das Cross-Plattform-Framework NativeScript unterstützt mit Version 6.1 vom 4. September 2019 erstmals Kotlin.<ref>[https://www.nativescript.org/blog/nativescript-6.1-kotlin-support-is-here NativeScript 6.1: Kotlin Support is here!, September 04, 2019]</ref>
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.<ref>[https://www.heise.de/news/Programmiersprache-Kotlin-1-4-erweitert-die-Toolchain-und-einige-Sprachelemente-4872606.html Programmiersprache: Kotlin 1.4 erweitert die Toolchain und einige Sprachelemente | heise online, 18.08.20]</ref><ref name="blogkotlin14">[https://blog.jetbrains.com/kotlin/2020/08/kotlin-1-4-released-with-a-focus-on-quality-and-performance/ Kotlin 1.4 Released with a Focus on Quality and Performance – Kotlin Blog | JetBrains, August 17, 2020]</ref>


== Versionen (Auswahl) ==
== Versionen (Auswahl) ==
Zeile 57: Zeile 59:
|-
|-
| 1.2 || 28. November 2017<ref>[https://blog.jetbrains.com/kotlin/2017/11/kotlin-1-2-released/ Kotlin 1.2 Released: Sharing Code between Platforms | Kotlin Blog]</ref>
| 1.2 || 28. November 2017<ref>[https://blog.jetbrains.com/kotlin/2017/11/kotlin-1-2-released/ Kotlin 1.2 Released: Sharing Code between Platforms | Kotlin Blog]</ref>
|-  
|-
| 1.2.70 || 13. September 2018<ref>[https://blog.jetbrains.com/kotlin/2018/09/kotlin-1-2-70-is-out/ Kotlin 1.2.70 is Out! | Kotlin Blog, September 13, 2018]</ref>
| 1.2.70 || 13. September 2018<ref>[https://blog.jetbrains.com/kotlin/2018/09/kotlin-1-2-70-is-out/ Kotlin 1.2.70 is Out! | Kotlin Blog, September 13, 2018]</ref>
|-
|-
Zeile 69: Zeile 71:
|-
|-
| 1.3.50 || 22. August 2019<ref>[https://blog.jetbrains.com/kotlin/2019/08/kotlin-1-3-50-released/ Kotlin 1.3.50 released | Kotlin Blog, August 22, 2019]</ref>
| 1.3.50 || 22. August 2019<ref>[https://blog.jetbrains.com/kotlin/2019/08/kotlin-1-3-50-released/ Kotlin 1.3.50 released | Kotlin Blog, August 22, 2019]</ref>
|-
| 1.4 || 17. August 2020<ref name="blogkotlin14"/>
|}
|}


62.805

Bearbeitungen