Kotlin 1.4 ist da – Qualität und Performance im Mittelpunkt

Veröffentlicht am von Sergiy Rogalin

Kotlin 1.4.0 ist da! In den letzten Jahren haben wir hart daran gearbeitet, Kotlin zu einer Programmiersprache zu machen, die Spaß macht, angenehmes Arbeiten ermöglicht und hohe Produktivität bietet. Um mit der neuen Kotlin-Version diesem Ziel noch näher zu kommen, haben wir keine Mühe gescheut, um die Performance und Qualität von Kotlin und den dazugehörigen Werkzeugen zu verbessern. Ebenso freuen wir uns, Ihnen mehrere neue Sprachmerkmale vorstellen zu können – etwa die lang erwarteten SAM-Konvertierungen für Kotlin-Schnittstellen.

datei

Wir möchten, dass Sie von den in Kotlin 1.4 eingeführten Änderungen und Verbesserungen optimal profitieren. Deshalb laden wir Sie zu einem Online-Event rund um Kotlin 1.4 ein. Genießen Sie vier Tage Kotlin-Diskussionen, Fragerunden mit dem Kotlin-Team und vieles mehr – völlig kostenlos.

Community und Ökosystem

Mehr als 5,8 Millionen Menschen haben in den letzten 12 Monaten an Kotlin-Code gearbeitet – und diese Zahl nimmt täglich zu:

datei

Wir sehen mit enormer Freude, wie populär Kotlin geworden ist! Besonders vielversprechend ist die Entwicklung bei den aktiven Benutzern (eine Kennziffer, der wir demnächst einen eigenen Blogbeitrag widmen werden). Bei diesem wichtigen Kriterium beobachten wir einen 1,5-fachen Anstieg gegenüber dem Vorjahr.

Gemäß dem StackOverflow Developer Survey 2020 hat Kotlin den 13. Platz der meistverwendeten Programmiersprachen für professionelle Entwickler erobert – und wir freuen uns ganz besonders, dass Kotlin zu den fünf Sprachen gehört, mit denen Entwickler am liebsten arbeiten.

Viele Unternehmen setzen Kotlin erfolgreich auf allen Plattformen ein – für sie ist Kotlin zur Sprache der Wahl geworden. Wir freuen uns über diese Tendenz und sind außerordentlich dankbar, dass so viele dieser Unternehmen ihre Erfahrungen in Fallstudien für die Community zur Verfügung gestellt haben. Hier sind einige wenige faszinierende Beispiele für Software, die in letzter Zeit in Kotlin entwickelt wurde:

Auch unsere Kotlin-Communities wachsen rasant. Mehr als 30.000 Kotlin-Entwickler unterstützen sich mittlerweile gegenseitig auf Slack und Reddit und tauschen ihre Erfahrungen aus. Außerdem verfolgen mehr als 90.000 Interessierte unseren offiziellen Twitter-Account, um unsere Tipps, Tricks und Ankündigungen nicht zu verpassen. Die mehr als 200 Benutzergruppen weltweit sind ein weiterer Beleg für die dynamische Entwicklung der Kotlin-Gemeinschaft. Wir danken Ihnen allen, dass Sie uns durch Mundpropaganda unterstützen, Ihr Wissen teilen und für andere Kotlin-Entwickler da sind. Die freundliche, einladende Atmosphäre, die dadurch entsteht, macht das gemeinsame Erkunden von Kotlin zu einem wunderbaren Erlebnis. Ohne Sie wäre es nicht so toll.

Online-Event für Kotlin 1.4

Wir möchten dafür sorgen, dass Sie großartige Erfahrungen mit Kotlin 1.4 machen und eine gute Vorstellung davon haben, wohin als Nächstes die Reise geht. Deshalb freuen wir uns, Sie alle zu unserem Online-Event für Kotlin 1.4 einladen zu dürfen!

Freuen Sie sich auf vier Tage Wissens- und Gedankenaustausch über Kotlin und die Zukunft der Sprache und des Ökosystems: Wir werden über die Änderungen und Verbesserungen sprechen, die wir mit Kotlin 1.4 eingeführt haben, aber auch über unsere Pläne für die Zukunft der Sprache. Die Mitglieder unseres Kotlin-Teams werden bei täglichen Fragerunden Ihre Fragen beantworten. Tweeten Sie uns Ihre Fragen im Voraus mit dem Hashtag #kotlin14ask oder reichen Sie sie über dieses Formular ein.

Das Online-Event zu Kotlin 1.4 wird vom 12. bis 15. Oktober gestreamt – registrieren Sie sich kostenlos hier:

Für Online-Event zu Kotlin 1.4 registrieren

Wir freuen uns, Sie alle dort zu sehen!

Qualität im Fokus

Unser Hauptaugenmerk bei dieser Version lag auf der Verbesserung der allgemeinen Entwicklungserfahrung mit Kotlin – einschließlich verbesserter IDE-Performance und -Stabilität. Unser Ziel ist es, Kotlin-Benutzer so produktiv wie möglich zu machen. Wir haben uns also darauf konzentriert, die Dinge zu verbessern, die für die Benutzer am wichtigsten sind – damit sie bei der Arbeit mit Kotlin noch zufriedener sind.

Wir haben mehr als 60 Leistungsprobleme überprüft und behoben – darunter viele, die zu IDE-Hängern oder Speicherlecks führten. Während der EAP-Phase für Kotlin 1.4.0 haben wir zahlreiche positive Rückmeldungen von Benutzern erhalten, die von einer viel angenehmeren Gesamterfahrung berichteten.

Wenn Sie bei der Arbeit an einem Projekt eine große Kotlin-Datei zum ersten Mal öffnen, wird die Syntax jetzt viel schneller hervorgehoben. Die Hervorhebung ist jetzt in den meisten Fällen 1,5- bis 4-mal schneller:

Auch die Vorschläge der Auto-Completion werden jetzt viel schneller angezeigt. Die folgende Grafik zeigt die durchschnittlichen Wartezeiten, die Kotlin-Benutzer bei Verwendung der Auto-Completion erleben. Die Anzahl der Fälle, in denen die Completion mehr als 500 ms benötigt, wurde fast halbiert:

datei

Bitte beachten Sie, dass für diese neuesten Verbesserungen, einschließlich der Beschleunigung der Codehervorhebung, IntelliJ IDEA 2020.1 oder höher bzw. Android Studio 4.1 oder höher erforderlich sind.

Die Leistungsoptimierung ist ein fortlaufender Prozess, und wir haben noch viele weitere Verbesserungen in Planung, z. B. eine weitere Reduzierung von UI-Hängern und eine noch flüssigere Texteingabe. Die Integration des neuen, experimentellen Compiler-Frontends für Kotlin, das die IDE viel schneller machen wird, hat bereits begonnen. Es handelt sich um ein großes Unterfangen, bei dem weite Teile des Plugins neu geschrieben werden müssen. Dafür wird jedoch die Performance in vielen Bereichen der IDE verbessert, etwa bei der Code-Completion, der Syntaxhervorhebung und bei Compiler-Fehlermeldungen.

Neue IDE-Funktionen

Bei JetBrains sehen wir es als unsere Mission an, die Softwareentwicklung produktiver und angenehmer zu gestalten. Deshalb liegt uns natürlich viel daran, dass für Kotlin hervorragende Tools zur Verfügung stehen, die das Programmieren mit Kotlin so einfach wie möglich machen.

Um Ihnen die Arbeit mit Coroutinen und insbesondere das Auffinden von Fehlern in parallelisierten Anwendungen zu erleichtern, haben wir den Coroutine-Debugger eingeführt. Wir werden den aktuellen Funktionsumfang um die von der Community am meisten benötigten Funktionen erweitern – vergessen Sie daher nicht, uns Ihr Feedback über einen unserer Kommunikationskanäle oder im Kommentarbereich weiter unten mitzuteilen.

Eine weitere Neuerung ist ein flexibler Kotlin-Projektassistent. Der neue Assistent ist Ihre zentrale Anlaufstelle zum Erstellen und Konfigurieren von Kotlin-Projekten verschiedener Typen. Jetzt können Sie auch komplexere Strukturen wie etwa Multiplattform-Projekte problemlos in Angriff nehmen.

Kotlin 1.4.0 enthält mehr als 40 neue Quick-Fixes, Intentions und Inspektionen, die Ihnen genau dann angeboten werden, wenn Sie sie benötigen – drücken Sie einfach Alt+Enter, um zu sehen, welche Möglichkeiten im jeweiligen Kontext verfügbar sind.

Neuer Compiler

Seit geraumer Zeit arbeiten wir an einem neuen Kotlin-Compiler, der in Bezug auf Performance und Erweiterbarkeit einen großen Schub für die Entwicklung von Kotlin bedeuten wird. Die Hauptziele für den neuen Compiler: Er sollte sehr schnell sein, alle von Kotlin unterstützten Plattformen vereinheitlichen und eine API für Compiler-Erweiterungen bereitstellen. Wir führen die neuen Komponenten Schritt für Schritt ein, damit die neuen Funktionalitäten so schnell wie möglich bei unseren Benutzern ankommen. Kotlin 1.4.0 enthält bereits mehrere Bausteine aus diesem laufenden Projekt:

  • Ein neuer, leistungsfähigerer Typinferenzalgorithmus ist standardmäßig aktiviert. Er kann Typen in mehr Anwendungsfällen automatisch erkennen, unterstützt Smart-Casts selbst in komplizierten Szenarien, verbessert die Inferenz bei delegierten Eigenschaften und vieles mehr.
  • Neue JVM- und JS-Backends sind im Alpha-Modus verfügbar. Sobald ihre Stabilität erwiesen ist, werden sie zum neuen Standard.

Wir arbeiten aktiv an einer neuen Frontend-Implementierung – diese wird der Compiler-Pipeline den größten Leistungsschub verschaffen. Das Frontend ist der Teil des Compilers, der den Code analysiert, Namen auflöst, Typprüfungen durchführt und noch vieles mehr unternimmt. Natürlich hat dies auch auf die IDE-Performance einen erheblichen Einfluss. Eine Vorschau wird in einer der nächsten Versionen verfügbar sein – bleiben Sie gespannt!

Sprachmerkmale

Kotlin 1.4 bietet viele neue Sprachmerkmale:

Bibliotheksverbesserungen

Unsere grundsätzliche Priorität für die Standardbibliothek besteht darin, die Einheitlichkeit sowohl auf den verschiedenen Plattformen als auch zwischen den Operationen selbst zu verbessern. In dieser Version erhält die Kotlin-Standardbibliothek neue Collection-Operatoren, Verbesserungen bei delegierten Eigenschaften, die doppelseitige Warteschlange ArrayDeque und vieles mehr.

Sie können die Standardbibliothek im „Common“-Code verwenden, also dem Code, der von verschiedenen Plattformen – Android & iOS oder JVM & JS – gemeinsam genutzt wird. Wir erweitern die Common-Bibliothek schrittweise um fehlende Funktionen.

Es ist auch nicht mehr erforderlich, in Gradle-Kotlin-Projekten eine stdlib-Abhängigkeit zu deklarieren, ganz unabhängig davon, ob Sie für eine einzelne Plattform entwickeln oder an einem Multiplattform-Projekt arbeiten. Ab Kotlin 1.4.0 wird diese Abhängigkeit standardmäßig hinzugefügt.

Wir arbeiten auch an anderen Teilen des Kotlin-Ökosystems:

Kotlin/JVM

Wir würden uns freuen, wenn Sie die Alpha-Version des neuen Kotlin/JVM-Backends in Ihren regulären Projekten ausprobieren und uns Feedback geben! Neben der Vereinheitlichung der Compiler-Pipelines trägt diese Neuentwicklung auch dazu bei, Compiler-Erweiterungen wie Jetpack Compose schneller der Kotlin-Community bereitstellen zu können.

Kotlin/JVM-spezifische Sprachmerkmale:

Kotlin/JS

Kotlin 1.4.0 enthält unter anderem eine neue Gradle-DSL und eine Alpha-Version des neuen Kotlin/JS-Compiler-Backends.

  • Die neue Gradle-DSL unterstützt die Konfiguration von CSS- und Style-Loadern, enthält verschiedene Verbesserungen im Zusammenhang mit dem npm-Abhängigkeitsmanagement und verbessert die Kontrolle über die Dukat-Integration.
  • Das neue Kotlin/JS-Compiler-Backend gibt einen Vorgeschmack auf die Zukunft von Kotlin/JS. Es bietet Optimierungen und Features wie die automatische Generierung von TypeScript-Definitionen aus Kotlin-Code, kleinere Binärdateien und Bundles, eine modernere Möglichkeit, Kotlin-Funktionalität in JavaScript verfügbar zu machen, und vieles mehr.

Kotlin/Native

Kotlin/Native hat eine erhebliche Anzahl neuer Funktionen und Verbesserungen erhalten. Zum Beispiel:

Die derzeitige Implementierung der automatischen Speicherverwaltung in Kotlin/Native weist Einschränkungen hinsichtlich der Parallelität auf, und wir arbeiten an einem Ersatz.

Ein wichtiger Schwerpunkt bei Kotlin/Native ist die nahtlose Nutzung von Kotlin Multiplatform Mobile – aber das ist noch nicht alles.

Kotlin Multiplatform

Es gehört zu unseren obersten Prioritäten, Kotlin zu einer großartigen plattformübergreifenden Lösung zu machen. Bei der KotlinConf haben wir einige wichtige Verbesserungen versprochen, und wir freuen uns, jetzt Ergebnisse präsentieren zu können:

Wir arbeiten an einem Android-Studio-Plugin zum Ausführen, Testen und Debuggen von Kotlin-Code auf iOS-Geräten und -Simulatoren. Die erste öffentliche Preview wird in Kürze veröffentlicht.

In Kürze werden wir eine Reihe von Materialien veröffentlichen, die mithilfe von Mitgliedern der Kotlin-Community erstellt wurden und erklären, wie die KMM-Technologie (Kotlin Multiplatform Mobile) konkret für Mobilanwendungen verwendet werden kann, in denen Code zwischen Android und iOS geteilt wird.

Auch wenn der Hauptfokus aktuell auf mobilen Zielen liegt, wird das Web-Target von Kotlin Multiplatform bereits aktiv von JetBrains verwendet, um JetBrains Space zu implementieren und bereitzustellen. Das Web-Target gehört damit weiterhin zu den strategischen Schwerpunkten von Kotlin.

Weitere Details

Detaillierte Beschreibungen der neuen Funktionen finden Sie auf der Seite Das ist neu in Kotlin 1.4 sowie in der Dokumentation. Auch die Migration zu Kotlin 1.4 ist im Detail beschrieben.

Wie in allen Hauptversionen werden mit Kotlin 1.4 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.4 aufgeführt.

Helfen Sie uns, Kotlin zu verbessern

Das Kotlin-Plugin in IntelliJ IDEA und Android Studio kann anonymisierte Statistiken über die Nutzung der Funktionalitäten erfassen. Bitte aktivieren Sie diese Statistiken!

Diese anonymen Daten helfen uns sehr, unsere Benutzer besser zu verstehen, zu sehen, was funktioniert, was Schwierigkeiten verursacht und auf welche Bereiche wir uns konzentrieren sollten. Um die Statistiken zu aktivieren, öffnen Sie das Menü Preferences, gehen Sie zu Appearance & Behaviour | System Settings | Data Sharing und aktivieren Sie das Kontrollkästchen Send usage statistics.

Liste der aktivsten Ticketersteller seit Kotlin 1.3

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:

Igor Wojda (145 Tickets); Louis CAD (87 Tickets); Marc Knaup (86 Tickets); AndroidDeveloperLB (83 Tickets); Robert Stoll (68 Tickets); Morgan Bartholomew (62 Tickets); Victor Turansky (54 Tickets); Guan Tianyi (51 Tickets); Scott Pierce (38 Tickets); Andreas Malik (37 Tickets); Steven Schäfer (37 Tickets); Björn Kautler (36 Tickets); Róbert Papp (34 Tickets); Toshiaki Kameyama (30 Tickets); Nicholas Bilyk (29 Tickets); Michael Bailey (26 Tickets); Jake Wharton (25 Tickets); Lamberto Basti (24 Tickets); Serge Pro (23 Tickets); Egor Andreevici (21 Tickets).

Steigen Sie jetzt auf Kotlin 1.4 um

Wie immer können Sie Kotlin unter play.kotl.in online ausprobieren.

Geben Sie in Gradle und Maven die Compilerversion 1.4.0 an. Siehe dazu die Dokumentation für Gradle und Maven.

In IntelliJ IDEA und Android Studio werden Sie automatisch aufgefordert, das Kotlin-Plugin auf Version 1.4.0 zu aktualisieren. Sie können auch Preferences | Plugins öffnen und das Kotlin-Plugin manuell aktualisieren.

Der Befehlszeilen-Compiler kann von der GitHub-Release-Seite heruntergeladen werden.

Sie können die folgenden Bibliotheksversionen verwenden, die zusammen mit dieser Version veröffentlicht wurden:

Die Bibliotheksversionen aus kotlin-wrappers (kotlin-react usw.) finden Sie im entsprechenden Repository.

Die neuesten IDE-Performance-Verbesserungen, etwa die Beschleunigung der Codehervorhebung, erfordern die Nutzung von IntelliJ IDEA 2020.1 oder höher und Android Studio 4.1 oder höher.

Bei Problemen mit der neuen Version finden Sie Hilfe auf Slack (lassen Sie sich hier einladen). Bitte melden Sie Probleme in unserem YouTrack.

Danke!

Wir danken allen Benutzern, die unsere Kotlin-EAPs ausprobiert und uns Feedback zu den experimentellen Funktionen gegeben haben. Kotlin wird gemeinsam mit Ihnen entwickelt, und viele Designentscheidungen basieren auf Ihren wertvollen Beiträgen. Diese schnelle und effektive Feedback-Schleife zur Community ist und bleibt sehr wichtig für die optimale Entwicklung der Sprache Kotlin!

Wir bedanken uns ganz herzlich bei allen externen Mitwirkenden, die Pull-Requests zu dieser Version beigetragen haben. Dieses Release wäre ohne Sie nicht möglich gewesen!

Wir sind allen Mitgliedern unserer Community dankbar, die mit Kotlin unglaublich viele erstaunliche Projekte auf die Beine gestellt haben. Kotlin 1.4: Einer für alle!