Skip to content

Kotlin 组件的稳定性

Kotlin 语言和工具集被划分为许多组件,例如适用于 JVM、JS 和 Native 目标的编译器、标准库、各种随附工具等。 其中许多组件已正式发布为 Stable,这意味着它们遵循 “顺畅更新”和“保持语言现代化”的原则,以向后兼容的方式进行演进。

遵循“反馈循环”原则,我们会尽早发布许多内容供社区试用,因此一些组件尚未发布为 Stable。 其中一些处于非常早期的阶段,另一些则更为成熟。 我们会根据每个组件的演进速度以及用户采用时承担的风险级别,将其标记为 ExperimentalAlphaBeta

稳定性级别说明

以下是这些稳定性级别及其含义的快速指南:

Experimental 意味着“仅在玩具项目中使用”:

  • 我们只是在测试一个想法及其可行性。我们希望一些用户试用并分享他们的反馈。范围极小,该功能可能随时更改或消失。我们不保证稳定性或兼容性。

Alpha 意味着“我们正在测试这是否应该达到生产就绪状态”:

  • 我们打算将此想法转化为产品,并正在验证其用户价值和市场契合度,以塑造其最终形态。功能集仍不完整,预计会发生破坏性变更。如果假设不成立,我们可能会大幅更改或停止该功能。

Beta 意味着“你可以使用它,我们将尽力为你减少迁移问题”:

  • 它已接近完成,此时用户的反馈尤为重要。
  • 尽管如此,它尚未 100% 完成,因此可能会发生更改(包括基于你自己的反馈进行的更改)。
  • 请提前留意弃用警告,以获得最佳更新体验。

我们将 ExperimentalAlphaBeta 统称为 pre-stable 级别。

Stable 意味着“即使在最保守的场景中也可以使用”:

请注意,稳定性级别并不代表组件多久会发布为 Stable。同样,它们也不指示组件在发布前会进行多少改动。它们仅说明组件的变化速度以及用户面临更新问题的风险程度。

Kotlin 组件的 GitHub 徽章

Kotlin GitHub 组织 托管着不同的 Kotlin 相关项目。 其中一些项目由我们全职开发,而另一些则是业余项目。

每个 Kotlin 项目都有两个描述其稳定性和支持状态的 GitHub 徽章:

子组件的稳定性

一个稳定的组件可能包含一个实验性的子组件,例如:

  • 稳定的编译器可能包含实验性功能;
  • 稳定的 API 可能包含实验性的类或函数;
  • 稳定的命令行工具可能包含实验性选项。

我们确保准确记录哪些子组件不是 Stable。 我们还尽力在可能的情况下提醒用户,并要求显式启用 (opt-in) 它们,以避免意外使用尚未发布为稳定的功能。

Kotlin 组件的当前稳定性

默认情况下,所有新组件的状态均为 Experimental。

Kotlin 编译器

组件状态自该版本起的状态备注
Kotlin/JVMStable1.0.0
Kotlin/NativeStable1.9.0
Kotlin/JSStable1.3.0
Kotlin/WasmBeta2.2.20
Analysis APIStable

核心编译器插件

组件状态自该版本起的状态备注
All-openStable1.3.0
No-argStable1.3.0
SAM-with-receiverStable1.3.0
kaptStable1.3.0
LombokAlpha2.3.20
Power-assertExperimental2.0.0

Kotlin 库

组件状态自该版本起的状态备注
kotlin-stdlib (JVM)Stable1.0.0
kotlinx-coroutinesStable1.3.0
kotlinx-serializationStable1.0.0
kotlin-metadata-jvmStable2.0.0
kotlin-reflect (JVM)Beta1.0.0
kotlinx-datetimeAlpha0.2.0
kotlinx-ioAlpha0.2.0

Kotlin Multiplatform

组件状态自该版本起的状态备注
Kotlin MultiplatformStable1.9.20
用于 Android Studio 的 Kotlin Multiplatform 插件Beta0.8.0版本与语言版本分开更新

Kotlin/Native

组件状态自该版本起的状态备注
Kotlin/Native 运行时Stable1.9.20
Kotlin/Native 与 C 和 Objective-C 的互操作性Beta1.3.0C 和 Objective-C 库导入的稳定性
klib 二进制文件Stable1.9.20不包括 cinterop klib,见下文
cinterop klib 二进制文件Beta1.3.0C 和 Objective-C 库导入的稳定性
CocoaPods 集成Stable1.9.20

有关不同目标支持级别的更多信息,请参阅

语言工具

组件状态自该版本起的状态备注
脚本语法和语义Alpha1.2.0
脚本嵌入和扩展 APIBeta1.5.0
脚本 IDE 支持Beta适用于 IntelliJ IDEA 2023.1 及更高版本
CLI 脚本Alpha1.2.0

语言功能和设计提案

有关语言功能和新设计提案,请参阅