News

Kotlin-Roadmap Herbst 2021 – sieben Highlights

Read this post in other languages:
English, Français, 한국어, 简体中文

Kotlin wurde entwickelt, um Ideen in Code zu übersetzen. 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öglicht 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ümmern sich rund 110 Mitarbeiter*innen in unserem Team. Alle arbeiten gleichzeitig an mehreren Projekten und Aufgaben.

Um sich über diese Projekte zu informieren, empfehlen wir Ihnen einen Blick in die öffentliche Kotlin-Roadmap. Wir haben sie gerade mit unseren Plänen für Kotlin 1.7.0 und darüber hinaus aktualisiert! Wenn Sie nur einen kurzen Überblick über die Entwicklungen erhalten möchten, ohne ins Detail zu gehen, lesen Sie diesen Blogbeitrag, der die sieben wichtigsten Highlights unserer Arbeit vorstellt.

Keine Lust aufs Lesen? Sie können diese Highlights auch in unserem Video kennenlernen:

1. K2-Compiler-Frontend nähert sich dem Alpha-Status

Der Compiler ist das Herzstück von Kotlin. Bei der Erstellung einer Anwendung hat er einen entscheidenden Einfluss auf jeden Aspekt, einschließlich der Reaktionsfähigkeit der IDE, der Build-Geschwindigkeit, der Größe der Programmdatei und der Effizienz. Aus diesem Grund investieren wir aktiv in den Kotlin-Compiler, insbesondere durch die Entwicklung des neuen K2-Compilers.

Unser Team arbeitet derzeit daran, das K2-Compiler-Frontend in die Alpha-Phase zu überführen. Das Frontend ist der Teil des Compilers, der für die Codeanalyse und die Umwandlung in eine Zwischenrepräsentation verantwortlich ist, die anschließend 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.

Wir werden weiterhin an der Stabilität arbeiten, indem wir weitere Projekte kompilieren und Fehler sowie Leistungsprobleme beheben. Wir planen, bis zum Frühjahr 2022 eine öffentliche Preview des K2/JVM-Compilers anzubieten. Die Alpha-Version wird einen Ausblick auf die neue Plugin-Infrastruktur bieten, die es der Community ermöglicht, neue Tools zu entwickeln.

Wir investieren auch in die Unterstützung von Nicht-JVM-Backends, um Multiplattform-Projekte mit dem K2-Compiler kompilieren zu können.

Relevante Roadmap-Tickets:

2. Fokus auf Stabilität und Robustheit für KMM

KMM wird im Frühjahr 2022 die Betaphase erreichen! Dies bedeutet, dass wir uns jetzt darauf konzentrieren, möglichst viele der Probleme, die Ihren Arbeitsablauf unterbrechen, zu finden und zu beheben. Dazu gehören die Bereiche Codehervorhebung, Navigation, Completion, Debugging und die Stabilität der Buildtools.

Auch im Bereich Nebenläufigkeit werden wir weitere Verbesserungen vornehmen. Wir haben gerade einen experimentellen Kotlin/Native-Speichermanager veröffentlicht. Er gleicht die Unterschiede zwischen der JVM und der nativen Plattform aus und vereinfacht das Schreiben von gemeinsam genutztem, nebenläufigem Code für iOS und Android. Zu unseren weiteren Plänen gehören die Verbesserung von Stabilität und Leistung, um die zukünftige Migration auf den neuen Speichermanager zu vereinfachen.

Relevante Roadmap-Tickets:

Kotlin entwickelt sich rasant weiter! Lesen Sie unsere öffentliche Roadmap, um ein vollständiges Bild von unseren aktuellen Schwerpunkten zu erhalten!

3. Forschungsaktivitäten und Prototyping zu Namensräumen

In Kotlin können Sie eine Klasse nur erweitern, wenn die Klasse ein Begleitobjekt deklariert. Dies hat viele unerwünschte Konsequenzen. Zum Beispiel lassen sich viele Bibliotheksklassen von Drittanbietern nicht erweitern, und das Deklarieren privater statischer Klassenmember ist ineffizient.

Wir wollen den Prototyp einer Lösung erstellen, die ein neues Namensraumkonzept einführt – eine Art ephemeres Objekt ohne Instanz, das jede Klasse automatisch besitzt. Namensraum-Member werden in der JVM natürlich 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ät von Kotlin mit statischen Java-Methoden erheblich verbessert und Erweiterungen zu jedem beliebigen Java-Typ ermöglicht werden. Dies sollte auch der weiteren Verbreitung von Kotlin/JVM zugutekommen.

Relevante Roadmap-Tickets:

4. Kover – ein Test-Coverage-Tool für Kotlin

Wir glauben, dass eine robuste, Kotlin-spezifische Lösung zur Erfassung der Test-Coverage von Kotlin-Anwendungen und -Bibliotheken für das Wachstum unseres Ökosystems unerlässlich ist. Deshalb haben wir Kover eingeführt, ein Gradle-Plugin, das die Coverage von Kotlin-Code ermittelt und mit allen Sprachkonstrukten einschließlich Inline-Funktionen umgehen kann.

Zu unseren langfristigen Plänen gehören eine DSL für Verifizierungsregeln, Stabilisierung der JaCoCo-Nutzung, erweiterte Filterung und erweiterte Android-Unterstützung. Wir wollen Kover basierend auf Ihrem Feedback entwickeln. Sie können es also gerne ausprobieren und uns Ihr Feedback mitteilen!

Relevante Roadmap-Tickets:

5. Dokka – ein überarbeitetes Tool zum Dokumentieren von Bibliotheken

Ein weiteres Tool für die Bibliotheksentwicklung, an dem wir gerade arbeiten, ist Dokka, ein Tool zur Erstellung von Dokumentationen. Mit 1.6.0 überführen wir es in die Betaphase und konzentrieren uns dabei auf Benutzerfreundlichkeit und die Vereinheitlichung des Designs mit der offiziellen Kotlin-Dokumentation. Wir möchten, 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.

Der nächste Schritt besteht darin, Dokka mit HTML als einzigem Output-Format in einer stabilen Version zu veröffentlichen. Andere Ausgabeformate wie GitHub-Markdown oder Jekyll, die API für die Plugin-Entwicklung und die durchgehende Java-Unterstützung verbleiben im Alpha-Status. Um auch hier voranzukommen, werden wir eine Reihe von Interviews durchführen und auf Ihr Feedback warten!

Relevante Roadmap-Tickets:

Tipp: Sie würden gerne an UX-Studien teilnehmen? Bewerben Sie sich!

6. Verbreitung des Kotlin-IDE-Plugins fördern

Die Umstellung des Kotlin-IDE-Plugins auf die Entwicklungsinfrastruktur der IntelliJ-Plattform war ein komplexes technisches Unterfangen, das es uns ermöglicht hat, die neuen Tool-Funktionen zusammen mit der IntelliJ-Plattform zu unterstützen. 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ützen. Wir wollen unsere interne Infrastruktur verbessern, um dieses und andere Probleme, die der Verbreitung des Kotlin-IDE-Plugins entgegenstehen, zu beheben.

Relevante Roadmap-Tickets:

7. Playground-Verbesserungen

Ist es Ihnen schon mal passiert, dass Sie auf einer Party schnell ein brandneues Kotlin-Feature vorführen wollten und feststellen mussten, dass Sie Ihren Laptop nicht dabei hatten? Für diesen und viele andere Fälle – zum Beispiel beim Erlernen der Sprache, beim Prototyping oder dem Wissensaustausch – haben wir den Kotlin Playground ins Leben gerufen. Und da er bei Ihnen auf enorme Resonanz gestoßen ist, wollen wir die Möglichkeiten, die er Ihnen bietet, erweitern!

Neulingen wollen wir den Einstieg mit weiteren Beispielen und Tipps vereinfachen. Fortgeschrittenen möchten wir die Möglichkeit bieten, Fortschritte geräteübergreifend zu synchronisieren, mehrere Tabs zu öffnen, Dateien zu exportieren und noch einiges mehr. Außerdem soll der Kotlin Playground auch auf Mobilgeräten leichter zu nutzen sein, damit die Party nicht ruiniert wird, wenn Sie Ihren Laptop vergessen!

Relevante Roadmap-Tickets:

——–

Die Community ist die große Stärke von Kotlin. Wir möchten bei unserer Planung gerne Ihr Feedback und Ihre Ideen berücksichtigen, und wir freuen uns sehr auf Ihre Rückmeldungen über YouTrack, Slack oder andere Kanäle. 

Wir werden Sie auch in Zukunft in unserem Blog und auf unserem YouTube-Kanal über unsere Pläne für Kotlin informieren. Abonnieren Sie also beide, um stets auf dem Laufenden zu bleiben!

Weitere Informationen