Kotlin
A concise multiplatform language developed by JetBrains
Neun Highlights aus der Kotlin-Roadmap
Viele von Ihnen warten gespannt auf Informationen über die Zukunft von Kotlin und die geplanten Neuerungen. Wir erwähnen in unseren Vorträgen oft den in Vorbereitung befindlichen neuen Compiler, die Konzentration auf Qualität und Performance der Toolkette sowie die Entwicklungserfahrung im Serverbereich und bei KMM, aber Vorträge vermitteln normalerweise kein vollständiges Bild.
Um über alle Pläne des Teams auf dem Laufenden zu bleiben, empfehlen wir Ihnen einen Blick in die öffentliche Kotlin-Roadmap. Wir haben sie gerade mit unseren Plänen für 2021 und darüber hinaus aktualisiert! Das Update umfasst die Weiterentwicklung der Sprache, der Werkzeuge und des Ökosystems im kommenden Jahr. Sie können die aktualisierte Roadmap jederzeit in Eigenregie erkunden. Als kleinen Vorgeschmack stellen wir Ihnen in diesem Blogbeitrag besonders interessante Highlights vor.
For those who don’t want to read we prepared a video with five most exciting highlights from this update!
- Große Fortschritte beim neuen Compiler
- „Sealed when“
- Wir setzen auf WebAssembly
- Neuer Garbage Collector für Kotlin/Native auf dem Weg zum experimentellen Status
- Verbesserte iOS-Tools für KMM
- Apple-Silicon-Unterstützung in den Kotlin-Multiplattform-Tools
- Neue Möglichkeiten zur Verbesserung der IDE-Leistung und -Stabilität
- Neue Features in den Kernbibliotheken
- Community-Assets im neuen Stil
1. Große Fortschritte beim neuen Compiler
Der neue Kotlin-Compiler ist ein Riesenprojekt, bei dem sowohl das JVM- und JS-Backend als auch das Frontend für die neue Architektur neu geschrieben werden müssen. Nach Abschluss sollte das Projekt erhebliche Leistungsvorteile erbringen, die Compiler-Plugin-API-Unterstützung ermöglichen und Möglichkeiten für neue Sprachmerkmale eröffnen. Wir haben gerade das neue JVM-Backend für den Compiler vorgestellt, und als Nächstes konzentrieren wir uns auf andere Bereiche des Compilers.
Um die Leistungssteigerung realisieren zu können, benötigen wir das neue Compiler-Frontend. Wir arbeiten seit einiger Zeit aktiv daran und nähern uns bereits dem Alpha-Status. Zunächst wird nur das JVM-Target unterstützt, und es können nur bestimmte Projektkategorien verarbeitet werden. Nach der expliziten Aktivierung wird das neue Frontend die Kompilierungsgeschwindigkeit verdoppeln!
Der zweite Schwerpunkt liegt auf der Weiterentwicklung des neuen Kotlin/JS-Backends, um den stabilen Status zu erreichen. Hierzu ist die inkrementelle Kompilierung und Sourcemap-Generierung zu implementieren.
2. „Sealed when“
Haben auch Sie eine Hilfsfunktion in Ihrer Codebasis, um when
in Kotlin abschließend (exhaustive) zu machen? Jake Wharton hat sogar ein Kotlin-Plugin mit der Annotation @Exhaustive
geschrieben, die when-Blöcke wirklich abschließend macht. Wir sind zuversichtlich, dass Sie diese Hilfslösungen bald nicht mehr benötigen werden!
Wir planen die Einführung des Sprachmerkmals sealed when
– mit 230 Stimmen in YouTrack ein lang erwartetes Feature. Die konkrete Sprachsyntax ist noch nicht entschieden, aber die allgemeine Idee ist, den Compiler eine Warnung ausgeben zu lassen, wenn Ihre when
-Bedingungen nicht abschließend sind. Dadurch wird Ihr Code sicherer, ohne eigene Funktionen dafür schreiben zu müssen.
Kotlin wird in einem hohen Tempo weiterentwickelt, indem einerseits neue Sprachmerkmale eingeführt und andererseits experimentelle Features stabilisiert werden.
Unsere öffentliche Roadmap bietet ein vollständiges Bild von allen 48 Features, die unsere aktuellen Schwerpunkte darstellen.
3. Wir setzen auf WebAssembly
Wir glauben, dass WebAssembly sich als neuer Standard für umfangreiche Webanwendungen etablieren wird, und Kotlin sollte dafür perfekt geeignet sein.
Deshalb haben wir uns entschieden, Kotlin/Wasm mit voller Kraft zu unterstützen! Wir haben bereits begonnen, ein dediziertes Team zusammenzustellen, das in Vollzeit daran arbeiten wird. Unsere Planungen umfassen Performance-orientierte Iterationen, eine enge Zusammenarbeit mit den Autoren des WebAssembly-GC-Proposals, die Implementierung von grundlegenden Kotlin-Sprachmerkmalen, Bibliotheken und einer grundlegenden Gradle-Unterstützung sowie das Hinzufügen einer experimentellen JavaScript-Interoperabilität.
4. Neuer Garbage Collector für Kotlin/Native auf dem Weg zum experimentellen Status
Wir haben bereits Prototypen für die meisten erforderlichen Komponenten eines einfachen Garbage Collectors. Der nächste Schritt besteht darin, eine Multithreading-fähige Garbage-Collector-Implementierung zu schreiben. Die erste Version wird langsam und daher nicht für den Produktiveinsatz geeignet sein. Wir sind jedoch bestrebt, noch in diesem Jahr eine Version öffentlich verfügbar zu machen, um Feedback zu erhalten. Für diejenigen, die mehr erfahren möchten, hat Roman Elizarov gerade einen Beitrag veröffentlicht, in dem er viel mehr Details zum aktuellen Stand unseres Garbage Collectors und zu unseren Zukunftsplänen verrät.
Bald heißt es also, Abschied zu nehmen von der altbekannten InvalidMutabilityException
, die uns bei der Arbeit mit Kotlin/Native stets begleitet hat!
5. Verbesserte iOS-Tools für KMM
KMM ist eine plattformübergreifende Technologie, und daher ist es uns wichtig, dass die Entwicklung mit unseren iOS-Tools Spaß macht! Neben der Überarbeitung des Kotlin/Native-Speichermodells gibt es auch in anderen Bereichen viel zu tun. Im Moment konzentrieren wir uns darauf, die Benutzererfahrung bei der Cocoapods-Integration zu verbessern und den Gradle-Build-Task packForXcode
aus dem Standard-Skript zu verbergen, um die Projekteinrichtung und die ersten Schritte zu vereinfachen.
Profitipp: Auf einem speziellen YouTrack-Board können Sie bequem auf alle 48 Roadmap-Features zugreifen. Probieren Sie es aus!
6. Apple-Silicon-Unterstützung in den Kotlin-Multiplattform-Tools
Die Verbreitung von Apple Silicon nimmt weiter zu. Der Kotlin/Native-Compiler ist bereits mit dieser Plattform kompatibel und kann Binärdateien dafür erstellen. Für eine vollständige Apple-Silicon-Erfahrung in Ihren Projekten werden wir die Unterstützung auf das Gradle-Plugin für Kotlin Multiplatform sowie alle Kotlinx-Bibliotheken erweitern.
7. Neue Möglichkeiten zur Verbesserung der IDE-Leistung und -Stabilität
Die schnelle und reibungslose IDE-Unterstützung gehört weiterhin zu unseren Prioritäten. Der neue Compiler ist zwar unsere langfristige Lösung zur Steigerung der Reaktionsschnelligkeit, aber wir arbeiten weiterhin auch an unseren aktuellen Tools und finden immer wieder neue Möglichkeiten für Performancesteigerungen.
Das Kotlin-Plugin für IntelliJ IDEA und Android Studio nutzt unter der Haube mehr als 30 verschiedene Indizes. Im Refactoring des Indexsystems sehen wir viele Möglichkeiten zur Steigerung der Geschwindigkeit und Stabilität der Codeanalyse. Darüber hinaus planen wir, die Geschwindigkeit der IDE-Navigation und der Verwendungssuche erheblich zu erhöhen.
Profitipp: Die Roadmap wird alle sechs Monate einer umfassenden Aktualisierung unterzogen, und auch nach jedem Feature-Release sind Änderungen möglich. Wenn Sie die Entwicklung eines bestimmten Tickets verfolgen möchten, geben Sie einfach Ihre Stimme dafür ab, um bei einer Statusänderung benachrichtigt zu werden.
8. Neue Features in den Kernbibliotheken
Wir arbeiten weiterhin daran, die Standard- und Kotlinx-Bibliotheken – etwa Coroutinen und Serialisierung – zu verbessern. Hier sind einige der vielen Verbesserungen:
- Multiplattform-Unterstützung von Suspend-Tests in Coroutinen zur Verbesserung der Testsuite sowohl für KMM- als auch für JVM-Projekte.
- Integration mit Java I/O-Streaming bei der Serialisierung, um große Dateien aus beliebigen Datenquellen – zum Beispiel aus dem Netzwerk oder einem Dateisystem-Stream – deserialisieren zu können.
- Kein
!!
nachreadLine()
mehr erforderlich – „Hello World“-Programme sind damit für Neulinge intuitiver zu erstellen.
9. Community-Assets im neuen Stil
Ist Ihnen das neue Kotlin-Logo aufgefallen? Dieses ist nur ein kleiner Teil unseres visuellen Erneuerungsprojekts, bei dem wir unsere Farbgebung, Typografie und Identität aktualisiert haben. Jetzt wollen wir diesen neuen Stil zum Aktualisieren der für Kotlin-Benutzergruppen bereitgestellten Assets verwenden:
Wenn Sie eine Benutzergruppe koordinieren, wären wir Ihnen für Ihr Feedback in diesem Ticket sehr dankbar: Welche Assets vermissen Sie und wie können wir Ihnen das Leben leichter machen?
Wir möchten, dass Sie alle die Zukunft von Kotlin mitgestalten. Ihr Feedback und Ihre Ideen sind es, die unserer Zukunftsvision eine konkrete Form geben. Wir werden Sie auch in Zukunft in unserem Blog und auf unserem YouTube-Kanal über unsere Pläne informieren. Abonnieren Sie also beide, um auf dem Laufenden zu bleiben, und zögern Sie nicht, uns Ihre Ideen und Erfahrungen mitzuteilen.
Profitipp: Abonnieren Sie unseren YouTube-Kanal, um keine Videos zu den Roadmap-Highlights zu verpassen!
Weitere Informationen
- Die Kotlin-Roadmap
- #kotlin-roadmap-Channel in unserem öffentlichen Slack (hier erhalten Sie eine Einladung)
- YouTube-Kanal von Kotlin