Kotlin roadmap
Last modified on |
November 2021 |
---|---|
Next update |
April 2022 |
Welcome to the Kotlin roadmap! Get a sneak peek into the priorities of the Kotlin Team.
Key priorities
The goal of this roadmap is to give you a big picture. Here’s a list of our key priorities – the areas we are investing the most effort into:
Fast turnaround: making the change-test-debug cycle really fast.
New compiler: a rewrite of the Kotlin compiler optimized for speed, parallelism, and unification. Later we will also work on pluggability.
Fast and smooth IDE: improving the stability and performance of the Kotlin plugin.
Kotlin for JVM server-side development: expanding support for server-side use cases across the Kotlin ecosystem.
Kotlin Multiplatform Mobile: improving the user experience and feature set for sharing code on mobile platforms.
Kotlin roadmap by subsystem
To view the biggest projects we're working on, visit the YouTrack board or the Roadmap details table.
If you have any questions or feedback about the roadmap or the items on it, feel free to post them to YouTrack tickets or in the #kotlin-roadmap channel of Kotlin Slack (request an invite).
YouTrack board
Roadmap details
Subsystem |
In focus now |
Postponed for later |
---|---|---|
Language |
||
Compiler core |
||
Kotlin/JVM |
||
Kotlin/JS |
||
Kotlin/Wasm |
Note: Wasm support in Kotlin/Native (through LLVM) will be deprecated and removed |
|
Kotlin/Native |
||
Kotlin Multiplatform |
||
IDE |
||
Build tools |
||
Libraries |
||
Website |
What's changed since May 2021
Completed items
We've completed the following items from the previous roadmap:
✅ Language: Support programmatic creation of annotation class instances
✅ Language: Stabilize typeOf
✅ Language: Allow repeating annotations with runtime retention when compiling under Java 8
✅ Language: Support annotations on class type parameters
✅ Language: Improve type inference in corner cases for popular Java APIs
✅ Language: Support for JVM sealed classes
✅ Compiler core: Inferring types based on self upper bounds
✅ Compiler core: Work on services for the new compiler to interact with IDE
✅ Kotlin/Native: Implement safe initialization for top-level properties
✅ Kotlin/Native: Prototype a new garbage collector
✅ Multiplatform: Support the Apple silicon target in the Kotlin Multiplatform tooling
✅ Multiplatform: Improve dependency management for iOS
✅ IDE: Move the Kotlin plugin to the IntelliJ platform development infrastructure
✅ Build tools: Decrease time for opening Gradle projects
✅ Libraries: Improve
kotlinx-serialization
(release 1.3.0)✅ Libraries: Improve
kotlinx-coroutines
(release 1.6.0)✅ Libraries: Stabilize Duration API in the standard library
✅ Libraries: Get rid of
!!
afterreadLine()
in the standard library✅ Libraries: Improve usability of multi-threaded coroutines library for Kotlin/Native
✅ Website: Revamp Kotlin documentation
Postponed items
We've decided to postpone the following items from the previous roadmap:
⏸ Kotlin/Native: Support building Kotlin/Native for Mac Catalyst (x86-64 and arm64)
⏸ Kotlin/Native: Support direct interoperability with Swift
⏸ Kotlin/Native: Support running Kotlin/Native-produced binaries on Alpine Linux
⏸ Kotlin/JS: Improve Dukat support
⏸ Kotlin/JS: JS: support ES6 as compilation target
⏸ Multiplatform: Improve Kotlin/Native debugging experience
⏸ Multiplatform: Implement code sharing between JVM and Android
⏸ IDE: Implement advanced tooling that users have in Java but is missing in Kotlin
⏸ Build tools: Improve the quality of Gradle import
Other postponed items remain in this state from earlier roadmap versions.
New items
We've added the following items to the roadmap:
???? Language: Research and prototype namespace-based solution for statics and static extensions
???? Language: Consider supporting inline sealed classes
???? Language: Allow denotable definitely not-null types
???? Language: Design and implement solution for toString on objects
???? Language: Provide modern and performant replacement for Enum.values()
???? Language: Allow implementation by delegation to inlined value of inline class
???? Compiler core: Stabilize the K2 Compiler Plugin API
???? Compiler core: Investigate JS backend for the K2 compiler
???? Kotlin/JVM: Release
kotlinx-metadata-jvm
as Stable???? Kotlin/JVM: Fix issues related to inline classes on the JVM
???? Kotlin/JVM: Allow private top-level classes or type aliases with same name in different files on JVM
???? Kotlin/JVM: Provide ability to enumerate all direct subclasses of a sealed class at compile-time without reflection
???? Kotlin/JVM: Support method references to functional interface constructors
???? Kotlin/JVM: Support Java synthetic property references
???? Kotlin/Native: Promote new memory manager to Alpha
???? Multiplatform: Improve environment setup experience for KMM projects
???? Multiplatform: Improve DSL for managing Kotlin/Native binary output
???? Multiplatform: Improve stability and robustness of the multiplatform toolchain
???? IDE: Improve Multiplatform support
???? IDE: Stabilize Eclipse plugin
???? Build tools: Provide better experience with Kotlin Daemon
???? Build tools: Make kapt work out of the box with latest JDKs
???? Libraries: Release Dokka as Stable
???? Libraries: Launch
kotlinx-kover
and productize it further???? Libraries: Release
kotlinx-serialization
1.4???? Libraries: Release
kotlinx-coroutines
1.7???? Website: Improve Kotlin Playground
???? Website: Provide infrastructure for documentation localization by community
Removed items
We've removed the following items from the roadmap:
❌ Kotlin/Native: Support interoperability with C++
❌ Multiplatform: Improve Gradle and Compiler error messages
❌ Build tools: Improve Kotlin Maven support
❌ Libraries: Implement any new multiplatform libraries
❌ Libraries:
kotlinx-cli
❌ Libraries:
binary-compatibility-validator
❌ Libraries:
kotlinx-io
Items in progress
All other previously identified roadmap items are in progress. You can check their YouTrack tickets for updates.
© 2010–2021 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/roadmap.html