Kotlin
A concise multiplatform language developed by JetBrains
Kotlin 1.5.0 – das erste große Release des Jahres 2021
Begrüßen Sie die erste Feature-Version gemäß dem neuen Release-Fahrplan: Kotlin 1.5.0!
Diese Version enthält stabile Sprachmerkmale wie JVM-Records, Sealed-Schnittstellen und Inline-Klassen und verwendet standardmäßig den neuen JVM-IR-Compiler. Ihr Feedback zu den Feature-Previews in Kotlin 1.4.30 und den EAP-Versionen von Kotlin 1.5.0 hat uns wirklich geholfen, die Stabilität dieser Funktionen zu gewährleisten. Wir sind sehr dankbar für Ihre Unterstützung! Danke!
Mehr als 25.000 Entwickler*innen haben den neuen JVM-IR-Compiler in IntelliJ IDEA bereits ausprobiert.
Die Vorteile werden im Laufe der Zeit deutlich. Der neue Compiler nutzt dieselbe einheitliche Pipeline und Business-Logik wie die Kotlin/Native- und Kotlin/JS-IR-Compiler. Dies erlaubt uns, die meisten Features, Optimierungen und Korrekturen für alle Plattformen zeitgleich zu implementieren. Aus Anwendersicht wiederum werden dadurch benutzerdefinierte Verarbeitungsschritte und Transformationen möglich, die automatisch auf allen Plattformen funktionieren.
Haben Sie Fragen zu Kotlin 1.5.0? Roman Elizarov, Svetlana Isakova und andere Mitglieder des Kotlin-Teams beantworten beim Online-Event für Kotlin 1.5 am 25. Mai live Ihre Fragen.
Für Online-Event zu Kotlin 1.5 registrieren
In diesem Blogbeitrag finden Sie einen Überblick über folgende Themen:
Stabile Sprachmerkmale – JVM-Records, Sealed-Schnittstellen und Inline-Klassen.
Verbesserungen an Standard- und Testbibliothek: stabile vorzeichenlose Ganzzahltypen, Erweiterungen für
java.nio.file.Path
, verbesserte APIs für String, Char und Zeiträume.Kotlin/JVM-Verbesserungen, darunter der neue, standardmäßig eingesetzte JVM-IR-Compiler.
Kotlin/Native-Optimierungen, darunter eine schnellere Debug-Kompilierung von Linux- und iOS-Anwendungen.
Kotlin/JS-Verbesserungen, zum Beispiel die Migration weiterer JS-Bibliotheken auf den neuen Kotlin/JS-IR-Compiler.
Automatisches Update auf Kotlin 1.5.0
Wenn Sie IntelliJ IDEA oder Android Studio verwenden, bietet Ihnen die IDE die Möglichkeit, automatisch auf die neue Kotlin-Version zu aktualisieren, sobald diese verfügbar ist.
Weitere Informationen zur Installation von Kotlin 1.5.0.
Stabile Sprachmerkmale
Kotlin 1.5.0 enthält stabile Versionen der neuen Sprachmerkmale, die in 1.4.30 als Preview vorgestellt wurden:
Unterstützung für JVM-Records, um die Interoperabilität mit den neuen Record-Klassen von Java zu gewährleisten. Um eine Kotlin-Klasse im Java-Code als Record zu verwenden, definieren Sie sie als
data
-Klasse und markieren Sie sie mit der Annotation@JvmRecord
:Erfahren Sie mehr über die Voraussetzungen zur Verwendung von JVM-Records.
Sealed-Schnittstellen. Der Modifikator
sealed
funktioniert bei Schnittstellen genauso wie bei Klassen: Alle Implementierungen einer Sealed-Schnittstelle sind zur Kompilierungszeit bekannt.Verbesserungen bei Sealed-Klassen. Bisher mussten sich alle Unterklassen in derselben Datei wie die Sealed-Klasse befinden. Jetzt können sie auf beliebige Dateien derselben Kompilierungseinheit und desselben Pakets verteilt werden.
Inline-Klassen sind eine Untermenge von wertbasierten Klassen, die nur Werte enthalten. Sie können sie als Wrapper für einen Wert eines bestimmten Typs verwenden, um den mit Speicherzuweisungen verbundenen Overhead zu vermeiden. Verwenden Sie in der Deklaration den Modifikator
value
.
Weitere Informationen zu den Sprachmerkmalen von Kotlin 1.5.0
- Blogartikel zur Preview der Sprachmerkmale lesen.
- Dokumentation der Sprache lesen.
- Videoreihe zur Sprache ansehen.
Verbesserungen an Standard- und Testbibliothek
Die Standardbibliothek bietet viele hilfreiche Funktionsmerkmale, darunter:
Neue, stabile APIs für vorzeichenlose Ganzzahltypen sowie für Bereiche, Progressionen und Funktionen im Zusammenhang mit diesen Typen. Weitere Informationen zu vorzeichenlosen Ganzzahlen.
Erweiterungsfunktionen für java.nio.file.Path zur Verwendung der modernen blockierungsfreien Java-IO-Funktionen in einem Kotlin-idiomatischen Stil.
Verbesserte String- und Char-API: gebietsschema-agnostische Funktionen zum Ändern der Groß- und Kleinschreibung von Zeichenfolgen und Zeichen, neue Funktionen für die Konvertierung zwischen Zeichen, ihren Zahlencodes und numerischen Werten sowie erweiterte Multiplattform-Unterstützung für Char-Funktionen.
Änderungen an der Zeitraum-API: Verwendung eines
Long
-Wertes für die interne Darstellung und Bereitstellung neuer Eigenschaften zum Abrufen einer Dauer alsLong
-Wert.
In der Testbibliothek wurden mehrere wichtige Verbesserungen vorgenommen:
Eine einzige
kotlin-test
-Abhängigkeit im gemeinsamen Quellcode-Set von Multiplattform-Projekten.Automatische Auswahl eines Testframeworks für Kotlin/JVM-Quellcode-Sets, wenn Sie die
kotlin-test
-Abhängigkeit einmal angegeben haben.Verschiedene Updates im Bereich Assertion-Funktionen.
Weitere Informationen zu den verbesserten Bibliotheken
- Blogbeitrag zu Bibliotheksverbesserungen (mit Beispielen) lesen.
- Liste der Neuerungen im Kotlin-Plugin 1.5.0 lesen.
- Video ansehen.
Kotlin/JVM
Neuerungen in Kotlin 1.5.0:
Der neue JVM-IR-Compiler, der in Kotlin 1.4.0 angekündigt wurde, ist nun stabil und wird standardmäßig eingesetzt. Weitere Informationen zum neuen Compiler finden Sie im entsprechenden Blogartikel und in der Dokumentation.
Kompilierung von SAM-Adaptern und Lambdas zu dynamischen Aufrufen (invokedynamic), die von den neuesten JVM-Features profitieren. Die Kompilierung von Kotlin-Plain-Lambdas ist ein experimentelles Feature.
Neue standardmäßige JVM-Zielversion: 1.8. Die Zielversion
1.6
wurde als veraltet gekennzeichnet.Verbesserte Handhabung von Typ-Nullability-Informationen aus Java.
@JvmDefault sowie alte -Xjvm-default-Modi wurden als veraltet gekennzeichnet.
Kotlin/Native
Kotlin 1.5.0 bietet:
Unterstützung für Compiler-Caches im Debug-Modus für die Zielplattformen
linuxX64
undiosArm64
. Mit aktivierten Compiler-Caches werden die meisten Debug-Kompilierungen (mit Ausnahme der ersten) viel schneller abgeschlossen. Messungen an unseren Testprojekten zeigten eine Geschwindigkeitssteigerung von ca. 200%.Deaktivierung der integrierten Speicherleckprüfung, um Probleme zu vermeiden, die zu Anwendungsabstürzen führen können. So können Sie die Speicherleckprüfung aktivieren, wenn Sie sie benötigen.
Kotlin/JS
Bei Kotlin/JS nähert sich der neue Kotlin/JS-IR-Compiler dem Beta-Status. Viele gängige Frameworks und Bibliotheken sind bereits für den IR-Compiler verfügbar: KVision, fritz2, doodle und andere.
Als Bibliotheksautor können auch Sie Ihre Bibliothek zu dieser Liste hinzufügen, indem Sie Ihre Bibliothek abwärtskompatibel migrieren.
Eine weitere Verbesserung ist das Erstellen von JS-Bundles mit Webpack 5 statt Webpack 4.
Installation von Kotlin 1.5.0
Wenn Sie IntelliJ IDEA oder Android Studio verwenden, schlägt Ihnen die IDE automatisch die Aktualisierung auf Kotlin 1.5.0 vor, sobald die neue Version veröffentlicht wurde. Eine manuelle Aktualisierung ist ebenfalls möglich. Folgen Sie dazu diesen Anweisungen.
Sie können jederzeit die neuesten Versionen dieser IDEs herunterladen, um eine umfassende Kotlin-Unterstützung zu genießen:
- IntelliJ IDEA zur Entwicklung von Kotlin-Anwendungen für verschiedene Plattformen.
- Android Studio zur Entwicklung von Android-Apps und plattformübergreifenden Mobilanwendungen.
Achten Sie darauf, auch die kotlinx-Bibliotheken auf kompatible Versionen zu aktualisieren und die Kotlin-Version 1.5.0
in den Build-Skripten Ihrer bestehenden Projekte anzugeben.
Den Befehlszeilen-Compiler können Sie bei Bedarf von der GitHub-Release-Seite herunterladen.
Hilfe bei Problemen
- Holen Sie sich Unterstützung auf Slack (eine Einladung erhalten Sie hier).
- Melden Sie Probleme in unserem Issue-Tracker, YouTrack.
Online-Event für Kotlin 1.5
Beim Online Event für Kotlin 1.5 am 25. Mai beantwortet das Kotlin-Team alle Ihre Fragen zur neuesten Version. Sie können Fragen zu allen Bereichen stellen, die Sie interessieren, und natürlich sind Sie auch dann willkommen, wenn Sie keine eigenen Fragen haben, sondern nur an den Antworten interessiert sind. Die Veranstaltung dauert 1,5 Stunden.
Veröffentlichen Sie Ihre Fragen auf Twitter unter dem Tag #kotlin15ask
oder geben Sie sie im Registrierungsformular an.
Für Online-Event zu Kotlin 1.5 registrieren
Außerdem werden wir am 27. und 28. Mai eine AMA-Sitzung (Ask Me Anything) auf Reddit durchführen, um offen gebliebene oder neu hinzugekommene Fragen zu beantworten.
Kompatibilität
Wie bei allen Feature-Releases werden mit Kotlin 1.5.0 einige Deprecation-Zyklen für zuvor angekündigte Änderungen abgeschlossen. Alle diese Fälle wurden vom Sprachkomitee sorgfältig geprüft und sind im Kompatibilitätsleitfaden für Kotlin 1.5 aufgeführt. Sie können diese Änderungen auch in YouTrack einsehen.
Interessantes zum Lesen und Ansehen
Kotlin-Videos auf YouTube:
- Video-Playlist zu Kotlin 1.5.0
- Abonnieren Sie den Kotlin-Kanal auf YouTube, um kein Video über neue Verbesserungen in den Coroutinen und Serialisierungsbibliotheken zu verpassen.
Artikel im Kotlin-Blog:
- Preview der Sprachmerkmale in Kotlin 1.5.0
- Verbesserungen in der Standard- und Testbibliothek von Kotlin 1.5.0
- Neues JVM-IR-Backend
- Verbesserte IDE-Unterstützung für Kotlin in IntelliJ IDEA
Detaillierte Informationen in den Kotlin-Docs:
Externe Mitwirkende
Wir bedanken uns 👏👏👏 bei allen externen Mitwirkenden, die Pull-Requests zu dieser Version beigetragen haben:
Jinseong Jeon, Mads Ager, Ivan Gavrilovic, pyos, Steven Schäfer, Iaroslav Postovalov, scaventz, Kristoffer Andersen, Bingran, Stefan Wolf, Victor Turansky, fjjohnchen, justin.wei, Nelson Osacky, Mikhail Galanin, Michael Hoisie, Kris Hall, Kevin Bierhoff, Jiaxiang Chen, Hung Nguyen, Cedric Champeau.
Liste der aktivsten Ticketersteller in YouTrack
Wir möchten uns bei allen Mitgliedern der Community bedanken, die uns geholfen haben, diese Version zu verbessern, indem sie bei Problemen Tickets in YouTrack erstellt haben! 👏👏👏 Wir möchten uns für diese Beiträge ausdrücklich bedanken – ganz besonders bei der Top 20 der Ticketersteller:
Morgan Bartholomew (118 Tickets); Marc Knaup (78 Tickets); Ryan Nett (61 Tickets); Louis CAD (48 Tickets); Daniil Stepanov (44 Tickets); AndroidDeveloperLB (39 Tickets); Victor Turansky (38 Tickets); Jinseong Jeon (35 Tickets); Zac Sweers (25 Tickets); Łukasz Wasylkowski (22 Tickets); Tianyi Guan (21 Tickets); Christoph Sturm (20 Tickets); Axel Fontaine (19 Tickets); Alexander Nozik (18 Tickets); Robert Stoll (18 Tickets); Björn Kautler (18 Tickets); Róbert Papp (14 Tickets); Andreas Malik (14 Tickets); Lorenzo Neumann (14 Tickets); Iaroslav Postovalov (14 Tickets).
Installieren Sie Kotlin 1.5.0 und melden Sie sich für das Online-Event zu Kotlin 1.5 an!