Last modified on | May 2021 |
Next update | November 2021 |
Welcome to the Kotlin roadmap! Get a sneak peek into the priorities of the Kotlin Team.
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 IDE.
- 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.
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).
Visit the roadmap board in our issue tracker {width=30}{type="joined"} YouTrack!
- This roadmap is not an exhaustive list of all things the team is working on, only the biggest projects.
- There’s no commitment to delivering specific features or fixes in specific versions.
- It lists some things that are postponed and will NOT get the team’s attention in the nearest future.
- We will adjust our priorities as we go and update the roadmap approximately every six months.
{type="note"}
We've completed the following items from the previous roadmap:
- ✅ Language: Support JVM records
- ✅ Language: Release inline classes as Stable, secure Valhalla compatibility
- ✅ Language: Sealed interfaces and more sealed classes freedom
- ✅ Compiler core: Support incremental compilation for the new compiler
- ✅ Kotlin/JVM: Make the new JVM IR backend Stable
- ✅ Kotlin/JS: JS IR BE: Prototype lazy initialization for top-level properties like in JVM
- ✅ Kotlin/Wasm: Prototype a compiler for Wasm GC proposal
- ✅ Kotlin/Native: Support Apple Silicon without Rosetta 2
- ✅ Multiplatform: Introduce a complex KMM application sample
- ✅ Multiplatform: Improve frontend and IDE import stability for Multiplatform projects
- ✅ IDE: Improve cross-language support in the Inline Method and Change Signature refactorings
- ✅ Build tools: Support the Gradle configuration cache
- ✅ Libraries: Make multiplatform kotlin.text API locale-agnostic by default
- ✅ Libraries: Implement unambiguous API for Char conversion
- ✅ Libraries: Implement multiplatform API for characters
- ✅ Libraries: Improve kotlinx-serialization (release v1.1)
- ✅ Libraries: Improve kotlinx-serialization (release v1.2)
- ✅ Libraries: Improve kotlinx-coroutines (release v1.5)
- ✅ Website: Design a new Kotlin visual style
- ✅ Website: Close try.kotlinlang.org
We've decided to postpone the following items from the previous roadmap:
Other postponed items remain in this state from earlier roadmap versions.
We've added the following items to the roadmap:
- 🆕 Language: Support sealed (exhaustive) whens
- 🆕 Language: Release OptIn annotations
- 🆕 Language: Support programmatic creation of annotation class instances
- 🆕 Language: Stabilize typeOf
- 🆕 Language: Stabilize builder inference
- 🆕 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
- 🆕 Compiler core: Release the new JVM compiler frontend in Alpha
- 🆕 Compiler core: Finalize support for jspecify
- 🆕 Kotlin/JVM: Maintain the new JVM IR backend
- 🆕 Kotlin/JVM: Improve new JVM IR backend compilation time
- 🆕 Kotlin/JVM: Stabilize JVM-specific experimental features
- 🆕 Kotlin/Wasm: Implement an experimental version of Kotlin/Wasm compiler backend
- 🆕 Kotlin/Native: Implement safe initialization for top-level properties
- 🆕 Multiplatform: Support the Apple Silicon target in the Kotlin Multiplatform tooling
- 🆕 IDE: Improve the New Project wizard
- 🆕 Build tools: Improve the quality of Gradle import
- 🆕 Build tools: Improve user experience with the Kotlin Gradle plugin
- 🆕 Libraries: Improve kotlinx-serialization (release v1.3.0)
- 🆕 Libraries: Improve kotlinx-coroutines (release v1.6.0)
- 🆕 Libraries: Stabilize Duration API in the standard library
- 🆕 Libraries: Get rid of
!!
forreadLine()
in the standard library - 🆕 Libraries: Stabilize and document
atomicfu
- 🆕 Website: Make the UI and navigation consistent
- 🆕 Website: Update community graphic assets to the new Kotlin visual style
All other previously identified roadmap items are in progress. You can check their YouTrack tickets for updates.