{"id":218992,"date":"2021-12-13T13:38:00","date_gmt":"2021-12-13T12:38:00","guid":{"rendered":"https:\/\/blog.jetbrains.com\/kotlin\/2021\/11\/kotlin-roadmap-autumn-2021\/"},"modified":"2022-01-19T16:16:46","modified_gmt":"2022-01-19T15:16:46","slug":"kotlin-roadmap-autumn-2021","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/de\/kotlin\/2021\/12\/kotlin-roadmap-autumn-2021\/","title":{"rendered":"Kotlin-Roadmap Herbst 2021 \u2013 sieben Highlights"},"content":{"rendered":"\n<p>Kotlin wurde entwickelt, um Ideen in Code zu \u00fcbersetzen. Wir versuchen, alle Hindernisse, die Ihren Ideen im Wege stehen, zu beseitigen und Ihnen das Lesen und Schreiben von Kotlin-Code einfach und angenehm zu machen. Erm\u00f6glicht wird dies durch ein komplexes System, das aus vielen Teilen besteht: der Sprachsyntax, dem Compiler-Frontend und -Backend, der IDE, den Build-Tools, den Bibliotheken und verschiedenen anderen Tools. Um die Entwicklung und Pflege all dieser Komponenten k\u00fcmmern sich rund 110 Mitarbeiter*innen in unserem Team. Alle arbeiten gleichzeitig an mehreren Projekten und Aufgaben.<\/p>\n\n\n\n<p>Um sich \u00fcber diese Projekte zu informieren, empfehlen wir Ihnen einen Blick in die <a href=\"https:\/\/kotl.in\/h4nimn\" target=\"_blank\" rel=\"noopener\">\u00f6ffentliche Kotlin-Roadmap<\/a>. Wir haben sie gerade mit unseren Pl\u00e4nen f\u00fcr Kotlin 1.7.0 und dar\u00fcber hinaus aktualisiert! Wenn Sie nur einen kurzen \u00dcberblick \u00fcber die Entwicklungen erhalten m\u00f6chten, ohne ins Detail zu gehen, lesen Sie diesen Blogbeitrag, der die sieben wichtigsten Highlights unserer Arbeit vorstellt.<\/p>\n\n\n\n<p>Keine Lust aufs Lesen? Sie k\u00f6nnen diese Highlights auch in unserem Video kennenlernen:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Kotlin-Roadmap November 2021 \u2013 die Highlights\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/zcpUt5q8ihw?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2>1. K2-Compiler-Frontend n\u00e4hert sich dem Alpha-Status<\/h2>\n\n\n\n<p>Der Compiler ist das Herzst\u00fcck von Kotlin. Bei der Erstellung einer Anwendung hat er einen entscheidenden Einfluss auf jeden Aspekt, einschlie\u00dflich der Reaktionsf\u00e4higkeit der IDE, der Build-Geschwindigkeit, der Gr\u00f6\u00dfe der Programmdatei und der Effizienz. Aus diesem Grund investieren wir aktiv in den Kotlin-Compiler, insbesondere durch die Entwicklung des neuen <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/10\/the-road-to-the-k2-compiler\/\">K2-Compilers<\/a>.<\/p>\n\n\n\n<p>Unser Team arbeitet derzeit daran, das K2-Compiler-Frontend in die <a href=\"https:\/\/kotlinlang.org\/docs\/components-stability.html#stability-levels-explained\" target=\"_blank\" rel=\"noopener\">Alpha<\/a>-Phase zu \u00fcberf\u00fchren. Das Frontend ist der Teil des Compilers, der f\u00fcr die Codeanalyse und die Umwandlung in eine Zwischenrepr\u00e4sentation verantwortlich ist, die anschlie\u00dfend von Backends verarbeitet wird. Der neue Compiler zeigt bereits jetzt tolle Ergebnisse! Er ist in der Lage, riesige JVM-Produktionsprojekte wie die Sprache Kotlin selbst und die IDE IntelliJ IDEA zu kompilieren. Bei diesen Projekten ist die Kompilierungsgeschwindigkeit im Durchschnitt doppelt so hoch wie bisher.<\/p>\n\n\n\n<p>Wir werden weiterhin an der Stabilit\u00e4t arbeiten, indem wir weitere Projekte kompilieren und Fehler sowie Leistungsprobleme beheben. Wir planen, bis zum Fr\u00fchjahr 2022 eine \u00f6ffentliche Preview des K2\/JVM-Compilers anzubieten. Die Alpha-Version wird einen Ausblick auf die neue Plugin-Infrastruktur bieten, die es der Community erm\u00f6glicht, neue Tools zu entwickeln.<\/p>\n\n\n\n<p>Wir investieren auch in die Unterst\u00fctzung von Nicht-JVM-Backends, um Multiplattform-Projekte mit dem K2-Compiler kompilieren zu k\u00f6nnen.<\/p>\n\n\n\n<p>Relevante Roadmap-Tickets:<\/p>\n\n\n\n<ul><li><a href=\"https:\/\/youtrack.jetbrains.com\/issue\/KT-46756\" target=\"_blank\" rel=\"noopener\">K2\/JVM-Compiler als Alpha ver\u00f6ffentlichen<\/a><\/li><li><a href=\"https:\/\/youtrack.jetbrains.com\/issue\/KT-49508\" target=\"_blank\" rel=\"noopener\">Compiler-Plugin-API stabilisieren<\/a><\/li><li><a href=\"https:\/\/youtrack.jetbrains.com\/issue\/KT-49510\" target=\"_blank\" rel=\"noopener\">JS-Backend f\u00fcr den K2-Compiler erkunden<\/a><\/li><\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h2>2. Fokus auf Stabilit\u00e4t und Robustheit f\u00fcr KMM<\/h2>\n\n\n\n<p><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/10\/kmm-beta-roadmap-video-highlights\/\">KMM wird im Fr\u00fchjahr 2022 die Betaphase erreichen<\/a>! Dies bedeutet, dass wir uns jetzt darauf konzentrieren, m\u00f6glichst viele der Probleme, die Ihren Arbeitsablauf unterbrechen, zu finden und zu beheben. Dazu geh\u00f6ren die Bereiche Codehervorhebung, Navigation, Completion, Debugging und die Stabilit\u00e4t der Buildtools.<\/p>\n\n\n\n<p>Auch im Bereich Nebenl\u00e4ufigkeit werden wir weitere Verbesserungen vornehmen. Wir haben gerade einen experimentellen <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/08\/try-the-new-kotlin-native-memory-manager-development-preview\/\">Kotlin\/Native-Speichermanager<\/a> ver\u00f6ffentlicht. Er gleicht die Unterschiede zwischen der JVM und der nativen Plattform aus und vereinfacht das Schreiben von gemeinsam genutztem, nebenl\u00e4ufigem Code f\u00fcr iOS und Android. Zu unseren weiteren Pl\u00e4nen geh\u00f6ren die Verbesserung von Stabilit\u00e4t und Leistung, um die zuk\u00fcnftige Migration auf den neuen Speichermanager zu vereinfachen.<\/p>\n\n\n\n<p>Relevante Roadmap-Tickets:<\/p>\n\n\n\n<ul><li><a href=\"https:\/\/youtrack.jetbrains.com\/issue\/KT-49525\" target=\"_blank\" rel=\"noopener\">Stabilit\u00e4t und Robustheit der Multiplattform-Toolchain verbessern<\/a><\/li><li><a href=\"https:\/\/youtrack.jetbrains.com\/issue\/KT-49520\" target=\"_blank\" rel=\"noopener\">Neuen Speichermanager in Alphaphase \u00fcberf\u00fchren<\/a><\/li><\/ul>\n\n\n\n<p><em>Kotlin entwickelt sich rasant weiter! <\/em><a href=\"https:\/\/kotl.in\/h4nimn\" target=\"_blank\" rel=\"noopener\"><strong><em>Lesen Sie unsere \u00f6ffentliche Roadmap<\/em><\/strong><\/a><em>, um ein vollst\u00e4ndiges Bild von unseren aktuellen Schwerpunkten zu erhalten!<\/em><\/p>\n\n\n\n<h2>3. Forschungsaktivit\u00e4ten und Prototyping zu Namensr\u00e4umen<\/h2>\n\n\n\n<p>In Kotlin k\u00f6nnen Sie eine Klasse nur erweitern, wenn die Klasse ein Begleitobjekt deklariert. Dies hat viele unerw\u00fcnschte Konsequenzen. Zum Beispiel lassen sich viele Bibliotheksklassen von Drittanbietern nicht erweitern, und das Deklarieren privater statischer Klassenmember ist ineffizient.<\/p>\n\n\n\n<p>Wir wollen den Prototyp einer L\u00f6sung erstellen, die ein neues Namensraumkonzept einf\u00fchrt \u2013 eine Art ephemeres Objekt ohne Instanz, das jede Klasse automatisch besitzt. Namensraum-Member werden in der JVM nat\u00fcrlich zu statischen Membern kompiliert. Somit werden statische Helfer im Quellcode an einem Ort gruppiert, und gleichzeitig wird der gesamte Objekt-Overhead beseitigt. Dadurch sollen die Interoperabilit\u00e4t von Kotlin mit statischen Java-Methoden erheblich verbessert und Erweiterungen zu jedem beliebigen Java-Typ erm\u00f6glicht werden. Dies sollte auch der weiteren Verbreitung von Kotlin\/JVM zugutekommen.<\/p>\n\n\n\n<p>Relevante Roadmap-Tickets:<\/p>\n\n\n\n<ul><li><a href=\"https:\/\/youtrack.jetbrains.com\/issue\/KT-11968?_gl=1*13zrdzm*_ga*ODQyNTk4NDYzLjE2MTIzNzY3ODE.*_ga_J6T75801PF*MTYzNjM1OTAzNC4yOTguMS4xNjM2MzU5MTI5LjA.&amp;_ga=2.124001795.881152214.1636359035-842598463.1612376781\" target=\"_blank\" rel=\"noopener\">Namensraum-basierte L\u00f6sung f\u00fcr statische Elemente und statische Erweiterungen erforschen und prototypisieren<\/a><\/li><\/ul>\n\n\n\n<h2>4. Kover \u2013 ein Test-Coverage-Tool f\u00fcr Kotlin<\/h2>\n\n\n\n<p>Wir glauben, dass eine robuste, Kotlin-spezifische L\u00f6sung zur Erfassung der Test-Coverage von Kotlin-Anwendungen und -Bibliotheken f\u00fcr das Wachstum unseres \u00d6kosystems unerl\u00e4sslich ist. Deshalb haben wir <a href=\"https:\/\/www.youtube.com\/watch?v=jNu5LY9HIbw\" target=\"_blank\" rel=\"noopener\">Kover<\/a> eingef\u00fchrt, ein Gradle-Plugin, das die Coverage von Kotlin-Code ermittelt und mit allen Sprachkonstrukten einschlie\u00dflich Inline-Funktionen umgehen kann.<\/p>\n\n\n\n<p>Zu unseren langfristigen Pl\u00e4nen geh\u00f6ren eine DSL f\u00fcr Verifizierungsregeln, Stabilisierung der JaCoCo-Nutzung, erweiterte Filterung und erweiterte Android-Unterst\u00fctzung. Wir wollen Kover basierend auf Ihrem Feedback entwickeln. Sie k\u00f6nnen es also gerne ausprobieren und uns Ihr Feedback mitteilen!<\/p>\n\n\n\n<p>Relevante Roadmap-Tickets:<\/p>\n\n\n\n<ul><li><a href=\"https:\/\/youtrack.jetbrains.com\/issue\/KT-49527\" target=\"_blank\" rel=\"noopener\">kotlinx-kover ver\u00f6ffentlichen und die Weiterentwicklung zu einem Produkt voranbringen<\/a><\/li><\/ul>\n\n\n\n<h2>5. Dokka \u2013 ein \u00fcberarbeitetes Tool zum Dokumentieren von Bibliotheken<\/h2>\n\n\n\n<p>Ein weiteres Tool f\u00fcr die Bibliotheksentwicklung, an dem wir gerade arbeiten, ist Dokka, ein Tool zur Erstellung von Dokumentationen. Mit 1.6.0 \u00fcberf\u00fchren wir es in die Betaphase und konzentrieren uns dabei auf Benutzerfreundlichkeit und die Vereinheitlichung des Designs mit der offiziellen Kotlin-Dokumentation. Wir m\u00f6chten, dass Sie bei der Entwicklung eine nahtlose Erfahrung mit der Kotlin-Dokumentation haben, egal ob es sich um die offizielle Sprachreferenz oder die Dokumentation von Bibliotheken handelt. Die Verwendung eines einheitlichen visuellen Stils und einer einheitlichen Struktur reduziert den Aufwand bei Kontextwechseln.<\/p>\n\n\n\n<p>Der n\u00e4chste Schritt besteht darin, Dokka mit HTML als einzigem Output-Format in einer stabilen Version zu ver\u00f6ffentlichen. Andere Ausgabeformate wie GitHub-Markdown oder Jekyll, die API f\u00fcr die Plugin-Entwicklung und die durchgehende Java-Unterst\u00fctzung verbleiben im Alpha-Status. Um auch hier voranzukommen, werden wir eine Reihe von Interviews durchf\u00fchren und auf Ihr Feedback warten!<\/p>\n\n\n\n<p>Relevante Roadmap-Tickets:<\/p>\n\n\n\n<ul><li><a href=\"https:\/\/youtrack.jetbrains.com\/issue\/KT-48998\" target=\"_blank\" rel=\"noopener\">Dokka als Stable ver\u00f6ffentlichen<\/a><\/li><\/ul>\n\n\n\n<p><em>Tipp: Sie w\u00fcrden gerne an UX-Studien teilnehmen? <\/em><a href=\"https:\/\/surveys.jetbrains.com\/s3\/kotlin-panel\" target=\"_blank\" rel=\"noopener\"><em>Bewerben Sie sich<\/em><\/a><em>!<\/em><\/p>\n\n\n\n<h2>6. Verbreitung des Kotlin-IDE-Plugins f\u00f6rdern<\/h2>\n\n\n\n<p>Die Umstellung des Kotlin-IDE-Plugins auf die Entwicklungsinfrastruktur der IntelliJ-Plattform war ein komplexes technisches Unterfangen, das es uns erm\u00f6glicht hat, die neuen Tool-Funktionen zusammen mit der IntelliJ-Plattform zu unterst\u00fctzen. Es gibt jedoch auch einige Nachteile. Wenn Sie beispielsweise unsere EAP-Versionen nutzen, ist Ihnen vielleicht aufgefallen, dass die EAP-Versionen von IntelliJ IDEA nicht die Preview-Versionen von kommenden Kotlin-Releases unterst\u00fctzen. Wir wollen unsere interne Infrastruktur verbessern, um dieses und andere Probleme, die der Verbreitung des Kotlin-IDE-Plugins entgegenstehen, zu beheben.<\/p>\n\n\n\n<p>Relevante Roadmap-Tickets:<\/p>\n\n\n\n<ul><li><a href=\"https:\/\/youtrack.jetbrains.com\/issue\/KTIJ-20044\" target=\"_blank\" rel=\"noopener\">Updates von Compiler-\/Plattformversionen beschleunigen<\/a><\/li><\/ul>\n\n\n\n<h2>7. Playground-Verbesserungen<\/h2>\n\n\n\n<p>Ist es Ihnen schon mal passiert, dass Sie auf einer Party schnell ein brandneues Kotlin-Feature vorf\u00fchren wollten und feststellen mussten, dass Sie Ihren Laptop nicht dabei hatten? F\u00fcr diesen und viele andere F\u00e4lle \u2013 zum Beispiel beim Erlernen der Sprache, beim Prototyping oder dem Wissensaustausch \u2013 haben wir den <a href=\"https:\/\/play.kotlinlang.org\/\" target=\"_blank\" rel=\"noopener\">Kotlin Playground<\/a> ins Leben gerufen. Und da er bei Ihnen auf enorme Resonanz gesto\u00dfen ist, wollen wir die M\u00f6glichkeiten, die er Ihnen bietet, erweitern!<\/p>\n\n\n\n<p>Neulingen wollen wir den Einstieg mit weiteren Beispielen und Tipps vereinfachen. Fortgeschrittenen m\u00f6chten wir die M\u00f6glichkeit bieten, Fortschritte ger\u00e4te\u00fcbergreifend zu synchronisieren, mehrere Tabs zu \u00f6ffnen, Dateien zu exportieren und noch einiges mehr. Au\u00dferdem soll der Kotlin Playground auch auf Mobilger\u00e4ten leichter zu nutzen sein, damit die Party nicht ruiniert wird, wenn Sie Ihren Laptop vergessen!<\/p>\n\n\n\n<p>Relevante Roadmap-Tickets:<\/p>\n\n\n\n<ul><li><a href=\"https:\/\/youtrack.jetbrains.com\/issue\/KT-49536\" target=\"_blank\" rel=\"noopener\">Kotlin Playground verbessern<\/a><\/li><\/ul>\n\n\n\n<p>&#8212;&#8212;&#8211;<\/p>\n\n\n\n<p>Die Community ist die gro\u00dfe St\u00e4rke von Kotlin. Wir m\u00f6chten bei unserer Planung gerne Ihr Feedback und Ihre Ideen ber\u00fccksichtigen, und wir freuen uns sehr auf Ihre R\u00fcckmeldungen \u00fcber YouTrack, Slack oder andere Kan\u00e4le.&nbsp;<\/p>\n\n\n\n<p>Wir werden Sie auch in Zukunft in unserem <a href=\"https:\/\/blog.jetbrains.com\/kotlin\">Blog<\/a> und auf unserem <a href=\"https:\/\/youtube.com\/kotlin\" target=\"_blank\" rel=\"noopener\">YouTube-Kanal<\/a> \u00fcber unsere Pl\u00e4ne f\u00fcr Kotlin informieren. Abonnieren Sie also beide, um stets auf dem Laufenden zu bleiben!<\/p>\n\n\n\n<h3>Weitere Informationen<\/h3>\n\n\n\n<ul><li><a href=\"https:\/\/kotl.in\/h4nimn\" target=\"_blank\" rel=\"noopener\">Die Kotlin-Roadmap<\/a><\/li><li>\u00d6ffentlicher Slack-Channel <a href=\"https:\/\/kotlinlang.slack.com\/archives\/C01AAJSG3V4\" class=\"ek-link\" target=\"_blank\" rel=\"noopener\">#kotlin-roadmap<\/a> (<a href=\"https:\/\/surveys.jetbrains.com\/s3\/kotlin-slack-sign-up\" target=\"_blank\" rel=\"noopener\">hier erhalten Sie eine Einladung<\/a>)<\/li><li><a href=\"https:\/\/youtube.com\/kotlin\" target=\"_blank\" rel=\"noopener\">YouTube-Kanal von Kotlin<\/a><\/li><\/ul>\n","protected":false},"author":1132,"featured_media":201433,"comment_status":"closed","ping_status":"closed","template":"","categories":[89],"tags":[],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/kotlin\/218992"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/kotlin"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/types\/kotlin"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/users\/1132"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/comments?post=218992"}],"version-history":[{"count":1,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/kotlin\/218992\/revisions"}],"predecessor-version":[{"id":218993,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/kotlin\/218992\/revisions\/218993"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/media\/201433"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/media?parent=218992"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/categories?post=218992"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/tags?post=218992"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/cross-post-tag?post=218992"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}