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.2.70
  | AktuelleVersion                  = 1.3.20
  | AktuelleVersionFreigabeDatum      = 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>
  | AktuelleVersionFreigabeDatum      = 23. Januar 2019
  | AktuelleVorabVersion              =  
  | AktuelleVorabVersion              =  
  | AktuelleVorabVersionFreigabeDatum =  
  | AktuelleVorabVersionFreigabeDatum =  
Zeile 35: Zeile 35:


== Geschichte ==
== 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.<ref>[http://blog.jetbrains.com/kotlin/2011/07/hello-world-2/ Hello World | Kotlin Blog, July 19, 2011]</ref> Im Januar 2012 wählte das [[Vereinigte Staaten|US-amerikanische]] Computermagazin Dr. Dobb’s Journal (DDJ) Kotlin zur Prgorammiersprache des Monats.<ref>[http://www.drdobbs.com/jvm/language-of-the-month-kotlin/232600836 Language of the Month: Kotlin | Dr Dobb's, January 20, 2012]</ref>
Am 19. Juli 2011 hat JetBrains Kotlin auf der JVM Language Summit vorgestellt. Kotlin war da bereits fast ein Jahr in der Entwicklung.<ref>[http://blog.jetbrains.com/kotlin/2011/07/hello-world-2/ Hello World | Kotlin Blog, July 19, 2011]</ref> Im Januar 2012 wählte das [[Vereinigte Staaten|US-amerikanische]] Computermagazin Dr. Dobb’s Journal (DDJ) Kotlin zur Prgorammiersprache des Monats.<ref>[http://www.drdobbs.com/jvm/language-of-the-month-kotlin/232600836 Language of the Month: Kotlin | Dr Dobb's, January 20, 2012]</ref>


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.<ref name="heise1434065"/> Am 15. Februar 2016 wurde die Version 1.0 nach über fünf Jahren Entwicklung veröffentlicht.<ref name="heise3103333"/> Am 1. März 2017 folgte Version 1.1.<ref>[https://blog.jetbrains.com/kotlin/2017/03/kotlin-1-1/ Kotlin 1.1 Released with JavaScript Support, Coroutines and more | Kotlin Blog, March 1, 2017]</ref> Kotlin 1.1 unterstützt erstmals das Kompilieren nach JavaScript und Koroutinen.<ref>[https://www.heise.de/newsticker/meldung/JVM-Sprache-Kotlin-1-1-ist-fertig-3641686.html JVM-Sprache: Kotlin 1.1 ist fertig | heise online, 02.03.2017]</ref> Mit [[Google Inc.|Googles]] Wechsel 2017 von Eclipse zu IntellJ IDEA<ref>[https://www.heise.de/newsticker/meldung/Kommentar-Kotlin-fuer-Android-Googles-fremde-Lorbeeren-3717940.html Kommentar: Kotlin für Android – Googles fremde Lorbeeren | heise online, 19.05.2017]</ref> wird auch offiziell Kotlin in Android O/Android Studio 3.0 unterstützt. Kotlin und IntelliJ IDEA stammen beide von JetBrains.<ref>[https://www.heise.de/newsticker/meldung/Android-Studio-3-0-hat-Kotlin-an-Bord-3716390.html Android Studio 3.0 hat Kotlin an Bord | heise online, 18.05.2017]</ref> 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.<ref>[https://www.heise.de/developer/meldung/Programmiersprachen-Kotlin-1-2-RC-ist-freigegeben-und-Kotlin-Native-unterstuetzt-iOS-3877951.html Programmiersprachen: Kotlin 1.2 RC ist freigegeben und Kotlin/Native unterstützt iOS | heise Developer, 03.11.2017]</ref> Version 1.2 wurde am 28. November 2017 veröffentlicht.<ref>[https://www.heise.de/developer/meldung/Programmiersprachen-Kotlin-1-2-vollzieht-den-Spagat-zwischen-JVM-und-JavaScript-3903616.html Programmiersprachen: Kotlin 1.2 vollzieht den Spagat zwischen JVM und JavaScript | heise Developer, 29.11.2017]</ref>
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.<ref name="heise1434065"/> Am 15. Februar 2016 wurde die Version 1.0 nach über fünf Jahren Entwicklung veröffentlicht.<ref name="heise3103333"/> Am 1. März 2017 folgte Version 1.1.<ref>[https://blog.jetbrains.com/kotlin/2017/03/kotlin-1-1/ Kotlin 1.1 Released with JavaScript Support, Coroutines and more | Kotlin Blog, March 1, 2017]</ref> Kotlin 1.1 unterstützt erstmals das Kompilieren nach JavaScript und Koroutinen.<ref>[https://www.heise.de/newsticker/meldung/JVM-Sprache-Kotlin-1-1-ist-fertig-3641686.html JVM-Sprache: Kotlin 1.1 ist fertig | heise online, 02.03.2017]</ref> Mit [[Google Inc.|Googles]] Wechsel 2017 von Eclipse zu IntellJ IDEA<ref>[https://www.heise.de/newsticker/meldung/Kommentar-Kotlin-fuer-Android-Googles-fremde-Lorbeeren-3717940.html Kommentar: Kotlin für Android – Googles fremde Lorbeeren | heise online, 19.05.2017]</ref> wird auch offiziell Kotlin in Android O/Android Studio 3.0 unterstützt. Kotlin und IntelliJ IDEA stammen beide von JetBrains.<ref>[https://www.heise.de/newsticker/meldung/Android-Studio-3-0-hat-Kotlin-an-Bord-3716390.html Android Studio 3.0 hat Kotlin an Bord | heise online, 18.05.2017]</ref> 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.<ref>[https://www.heise.de/developer/meldung/Programmiersprachen-Kotlin-1-2-RC-ist-freigegeben-und-Kotlin-Native-unterstuetzt-iOS-3877951.html Programmiersprachen: Kotlin 1.2 RC ist freigegeben und Kotlin/Native unterstützt iOS | heise Developer, 03.11.2017]</ref> Version 1.2 wurde am 28. November 2017 veröffentlicht.<ref>[https://www.heise.de/developer/meldung/Programmiersprachen-Kotlin-1-2-vollzieht-den-Spagat-zwischen-JVM-und-JavaScript-3903616.html Programmiersprachen: Kotlin 1.2 vollzieht den Spagat zwischen JVM und JavaScript | heise Developer, 29.11.2017]</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> 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>
=== 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 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>
 
== Versionen (Auswahl) ==
{| class="wikitable"
|- class="hintergrundfarbe5"
! Version || Datum
|-
| 1.0 || 15. Februar 2016
|-
| 1.1 || 1. März 2017
|-
| 1.1.50 || 22. September 2017<ref>[https://blog.jetbrains.com/kotlin/2017/09/kotlin-1-1-50-is-out/ Kotlin 1.1.50 is out | Kotlin Blog, September 22, 2017]</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.3 || 29. Oktober 2018
|-
| 1.3.20 || 23. Januar 2019
|}


== Weblinks ==
== Weblinks ==