Kotlin 路线图

最后修改时间 2020 年 10 月
预计时效 6 个月,到 2021 年 3 月
下次更新时间 2021 年 1 月

欢迎来看 Kotlin 路线图!一窥 Kotlin 团队的工作重点。

关于路线图有以下几点注意事项:

  1. 描述了团队正在投入的主要领域。
  2. 这不是团队正在做的所有事情的详尽清单,只列了重要的项目。
  3. 这里没有在指定版本中交付指定特性或修复的承诺。
  4. 列出了一些被推迟并且团队在不久的将来不会关注的事情。
  5. 没有什么是一成不变的,我们会随着进展调整事项的优先级,并且大约每三个月更新一次路线图。

如果对路线图或者其中某些点有任何问题或反馈,请随时发布到 YouTrack tickets 或者 Kotlin Slack(获取邀请)的 #kotlin-roadmap 频道中。

关键优先事项

这个路线图的目标是给出一个大的图景。这里列出了主要优先事项——我们投入精力最多的领域:

  • 快速流转:让“变更-测试-调试”周期非常快。
  • 新版编译器:重写 Kotlin 编译器,针对速度、并行性与统一性进行优化。晚些还会研究插件化。
  • 快速流畅的 IDE:改善 Kotlin IDE 的稳定性与性能。
  • Kotlin 用于 JVM 服务器端开发:在整个 Kotlin 生态系统中扩展对服务器端使用场景的支持。
  • Kotlin 多平台移动端:改善在移动平台上共享代码的用户体验与特性集。

以子系统划分的 Kotlin 路线图

下表介绍了我们正在从事的重大项目。

子系统 当前聚焦 推迟后续
语言 - 支持 JVM 的记录 (KT-42430) - 支持 JVM 的密封类 (KT-42433) - Release inline classes as stable, secure Valhalla compatibility (KT-42434) - Prototype multiple receivers (KT-42435)
编译器核心 - 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 多平台 - 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.
构建工具 - 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
库 - 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 路线图