Kotlin Roadmap

Last modified onOctober 2020
Time frame6 months until March 2021
Next updateJanuary 2021

Welcome to the Kotlin roadmap! Get a sneak peek into the priorities of the Kotlin Team.

Here are a few points to note about this roadmap:

  1. It describes the primary areas that the team is investing into.
  2. It’s not an exhaustive list of all things the team is working on, only the biggest projects.
  3. There’s no commitment to delivering specific features or fixes in specific versions.
  4. It lists some things that are postponed and will NOT get the team’s attention in the nearest future.
  5. Nothing is set in stone, we will adjust our priorities as we go and update the roadmap approximately every three months.

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).

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 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.

Kotlin roadmap by subsystem

This table describes the biggest projects that we’re working on.

SubsystemIn focus nowPostponed for later
Language
  • Support JVM records
    (KT-42430)

  • Support JVM sealed classes
    (KT-42433)

  • Release inline classes as stable, secure Valhalla compatibility
    (KT-42434)

  • Prototype multiple receivers
    (KT-42435)

Compiler core
  • Bootstrap the new compiler (make the new Kotlin compiler compile itself)
    (KT-42285)

  • Maintain the current compiler (bug-fixing only)
    (KT-42286)

  • ⏸ Stable Compiler Plugin API

  • ⏸ Scripting improvements

Kotlin/JVM
  • Make the new JVM IR backend stable
    (KT-42287)

  • Maintain the old JVM backend by fixing critical bugs
    (KT-42288)

Kotlin/JS
  • Make the new JS IR backend stable
    (KT-42289)

  • Improve Dukat support
    (KT-42290)

  • Maintain the old JS backend by fixing critical bugs
    (KT-42291)

  • ⏸ ES6 support
Kotlin/WASM
  • Prototype a compiler for Wasm GC proposal
    (KT-42292)

Note: Wasm support in Kotlin/Native (through LLVM) will be deprecated and removed

Kotlin/Native
  • Provide binary compatibility between incremental releases
    (KT-42293)

  • Improve compilation time
    (KT-42294)

  • Runtime performance: improve object allocation times
    (KT-42295)

  • Prototype a new garbage collector
    (KT-42296)

  • Improve exporting Kotlin code to Objective-C
    (KT-42297)

  • ⏸ Support ARM Mac & Catalyst
    (KT-39834)
    (KT-39833)
    (KT-40442)

  • ⏸ Direct interoperability with Swift

  • ⏸ Interoperability with C++

  • ⏸ Support Alpine Linux
    (KT-38876)

Kotlin Multiplatform
  • KMM plugin: Fix major bugs
    (KT-42299)

  • KMM plugin: Run common tests on Android devices
    (KT-42298)

  • Improve dependency management for iOS
    (KT-42301)

  • Improve Gradle & Compiler error messages
    (KT-42303)

  • ⏸ Sharing code between JVM and Android

  • ⏸ KMM plugin: support for IntelliJ IDEA

IDE
  • Improve IDE performance
    (KT-42304)

  • Improve cross-language support in the Inline Method and Change Signature refactorings
    (KT-42306)

  • Prototype IDE plugin with the new compiler frontend
    (KT-42307)

  • Move the Kotlin plugin to the IntelliJ platform development infrastructure
    (KT-42308)

Note: Kotlin support for VSCode or other IDEs is not on the roadmap for the Kotlin team. Community initiatives in this respect are welcome.

Build tools
  • Improve incremental compilation performance in Gradle
    (KT-42309)

  • Support the Gradle configuration cache
    (KT-42310)

  • Decrease time for opening Gradle projects
    (KT-42311)

  • ⏸ Improvements in Kotlin Maven support

Libraries
  • Support java.nio.Path extension in the standard library
    (KT-42436)

  • Make multiplatform kotlin.text API locale-agnostic by default
    (KT-42437)

  • Improve usability of multi-threaded coroutines library for Kotlin/Native
    (KT-42314)

  • Improve kotlinx-datetime library
    (KT-42315)

  • Improve kotlinx-serialization (release v1.1)
    (KT-42316)

  • Improve kotlinx-coroutines (release v1.4)
    (KT-42317)

  • kotlinx-cli

  • binary-compatibility-validator

  • kotlinx-io

  • ⏸ Any new multiplatform libraries

Ktor

Ktor roadmap