# Kotlin 各部分组件的稳定性 Kotlin 语言和它的工具集分成很多组件, 比如针对 JVM, JS 和 Native 平台的编译器, 标准库, 大量的相关工具, 等等. 这些组件很多已经正式发布为 稳定(Stable) 版本, 也就是说它们会以向后兼容的方式演化, 遵循 [版本升级平滑便利 和 保证语言的现代化 的原则](kotlin-evolution-principles.html). 遵循 反馈循环(Feedback Loop) 原则, 出于试用的目的, 我们会向开发者社区提前发布很多功能, 因此很多组件还没有发布为 稳定(Stable) 版本. 其中一些功能还处于非常早期的阶段, 另一些已经比较成熟了. 根据各个组件的演化速度不同, 以及使用它们给使用者带来的风险程度不同, 我们将这些功能标记为 实验性(Experimental), Alpha 或 Beta 几种状态. ## 稳定性级别 下面简单介绍这些稳定性级别的含义: 实验性(Experimental) 代表 "请只在玩具项目中使用这些功能": * 我们只是在测试某些想法及其可行性. 我们希望一些使用者试用, 并提供意见反馈 其适用范围有限, 这些功能特性随时可能会变更, 或被删除. 我们不保证稳定性和兼容性. Alpha 代表 "我们正在测试这个功能是否达到可用于生产的程度": * 我们打算将这个功能变成产品, 正在其用户价值和市场契合度, 来塑造它的最终形态. 功能集合尚未完善, 可能发生破坏性变更. 如果这个功能的假定前提不能成立, 我们可能会进行重大修改, 或者放弃这个功能. Beta 代表 "可以使用这些功能, 我们会尽力减少升级时的问题": * 功能已经基本完成, 现在使用者的意见反馈非常重要. * 但是, 它还没有 100% 完成, 因此还可能发生变化 (包括根据你的意见反馈产生的变化). * 为了确保升级顺利, 请注意废弃声明. 我们将 实验性(Experimental), Alpha 和 Beta 统称为 未稳定(pre-stable) 级别. 稳定(Stable) 代表 "即使是在最保守的场景也可以使用这些功能": * 功能已开发完毕. 我们会继续改进它, 遵循我们严格的 [向后兼容(backward compatibility) 规则](https://kotlinfoundation.org/language-committee-guidelines/). 请注意, 稳定性级别并不代表组件会在什么时间发布为稳定版本. 同样, 也不代表组件在正式发布之前会发生多大的变化. 稳定性级别只代表组件会以多快的速度发生变化, 以及将来的版本升级问题会给使用者带来多大的风险. ## Kotlin 组件的 GitHub 徽章 [GitHub 上的 Kotlin 组织](https://github.com/Kotlin) 存放着很多 Kotlin 相关项目. 有些项目我们在全职投入开发, 其他则只是业余项目. 每个 Kotlin 项目都有 2 个 GitHub 徽章描述它的稳定性和支持状态: * 稳定性 状态. 表示每个项目的演化速度, 以及用户使用它时的风险程度. 稳定性状态与 [Kotlin 语言特性和各组件的稳定性级别](#stability-levels-explained) 完全相符: * ![Experimental stability level](https://kotl.in/badges/experimental.svg) 表示 实验性(Experimental) 状态 * ![Alpha stability level](https://kotl.in/badges/alpha.svg) 表示 Alpha 状态 * ![Beta stability level](https://kotl.in/badges/beta.svg) 表示 Beta 状态 * ![Stable stability level](https://kotl.in/badges/stable.svg) 表示 稳定(Stable) 状态 * 支持 状态. 表示我们对维护这个项目以及帮助使用者解决相关问题的保证程度. 对于 JetBrains 的所有产品, 支持级别是一致的. 详情请参见 [JetBrains 的开源文档](https://github.com/JetBrains#jetbrains-on-github). ## 子组件的稳定性 一个稳定的组件也可以包含实验性的子组件, 比如: * 稳定的编译器可以包含实验性的功能特性; * 稳定的 API 可以包含实验性的类或函数; * 稳定的命令行工具可能包含实验性的参数选项. 我们确保会对这些还未 稳定 的子组件提供正确的文档. 我们也会尽可能警告使用者, 并要求使用者明确同意, 以避免无意中使用到这些未稳定发布的功能. ## Kotlin 各部分组件当前的稳定性 > **Note:** > 默认情况下, 所有的新组件都是实验性(Experimental)状态. ### Kotlin 编译器 | 组件 | 状态 | 进入这个状态的版本 | 备注 | | --- | --- | --- | --- | | Kotlin/JVM | 稳定 | 1.0.0 | | | Kotlin/Native | 稳定 | 1.9.0 | | | Kotlin/JS | 稳定 | 1.3.0 | | | Kotlin/Wasm | Beta | 2.2.20 | | | [Analysis API](https://kotlin.github.io/analysis-api/index_md.html) | 稳定 | | | ### 核心编译器插件 | 组件 | 状态 | 进入这个状态的版本 | 备注 | | --- | --- | --- | --- | | [All-open](all-open-plugin.html) | 稳定 | 1.3.0 | | | [No-arg](no-arg-plugin.html) | 稳定 | 1.3.0 | | | [SAM-with-receiver](sam-with-receiver-plugin.html) | 稳定 | 1.3.0 | | | [kapt](kapt.html) | 稳定 | 1.3.0 | | | [Lombok](lombok.html) | Alpha | 2.3.20 | | | [Power-assert](power-assert.html) | 实验性 | 2.0.0 | | ### Kotlin 库 | 组件 | 状态 | 进入这个状态的版本 | 备注 | | --- | --- | --- | --- | | kotlin-stdlib (JVM) | 稳定 | 1.0.0 | | | kotlinx-coroutines | 稳定 | 1.3.0 | | | kotlinx-serialization | 稳定 | 1.0.0 | | | kotlin-metadata-jvm | 稳定 | 2.0.0 | | | kotlin-reflect (JVM) | Beta | 1.0.0 | | | kotlinx-datetime | Alpha | 0.2.0 | | | kotlinx-io | Alpha | 0.2.0 | | | kotlinx-collections-immutable | Alpha | 0.3.5 | | ### Kotlin Multiplatform | 组件 | 状态 | 进入这个状态的版本 | 备注 | | --- | --- | --- | --- | | Kotlin Multiplatform | 稳定 | 1.9.20 | | | Android Studio 的 Kotlin Multiplatform plugin | Beta | 0.8.0 | [版本与语言本身的版本不同](multiplatform-plugin-releases.html) | ### Kotlin/Native | 组件 | 状态 | 进入这个状态的版本 | 备注 | | --- | --- | --- | --- | | Kotlin/Native Runtime | 稳定 | 1.9.20 | | | Kotlin/Native 与 C 和 Objective-C 的交互 | Beta | 1.3.0 | [C 和 Objective-C 库导入功能的稳定性](native-lib-import-stability.html#stability-of-c-and-objective-c-library-import) | | klib 二进制文件 | 稳定 | 1.9.20 | 不包含 cinterop klib 库, 参见下文 | | cinterop klib 二进制文件 | Beta | 1.3.0 | [C 和 Objective-C 库导入功能的稳定性](native-lib-import-stability.html#stability-of-c-and-objective-c-library-import) | | CocoaPods 集成 | 稳定 | 1.9.20 | | > **Tip:** > 关于各种编译目标的支持级别, 详情请参见 [Kotlin/Native 支持的编译目标与主机](native-target-support.html). ### 构建工具 | 组件 | 状态 | 进入这个状态的版本 | 备注 | | --- | --- | --- | --- | | [Kotlin Gradle plugin](gradle-configure-project.html) | 稳定 | 1.1.1 | [Kotlin Multiplatform Gradle plugin](multiplatform-dsl-reference.html#id-and-version) 从 Kotlin 1.9.20 开始进入稳定版. | | [Kotlin Maven plugin](maven-configure-project.html) | 稳定 | 1.0.0 | | ### 构建工具 API (Build tools API, BTA) | 组件 | 状态 | 进入这个状态的版本 | 备注 | | --- | --- | --- | --- | | BTA for JVM | Beta | 2.4.20 | | | BTA for JS | Alpha | 2.4.20 | | | BTA for Wasm | Alpha | 2.4.20 | | > **Note:** > 构建工具 API 目前不支持 Kotlin/Native. ### 语言工具 | 组件 | 状态 | 进入这个状态的版本 | 备注 | | --- | --- | --- | --- | | 脚本的语法与语义 | Alpha | 1.2.0 | | | 脚本内嵌与扩展 API | Beta | 1.5.0 | | | 脚本 的 IDE 支持 | Beta | | 从 IntelliJ IDEA 2023.1 及更高版本开始可用 | | CLI 脚本 | Alpha | 1.2.0 | | ## 语言功能与设计提案 关于语言功能与新的设计提案, 请参见 [Kotlin 语言的功能特性与提案](kotlin-language-features-and-proposals.html).