Skip to content

Kotlin 组件的稳定性

Kotlin 语言和工具集被划分为许多组件,例如面向 JVM、JS 和 Native 目标平台的编译器、标准库以及各种随附工具等。 其中许多组件已正式发布为 Stable(稳定),这意味着它们是按照《舒适更新与保持语言现代化》原则以向后兼容的方式演进的。

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

稳定性级别说明

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

Experimental 意味着“仅限在试验性项目中使用”:

  • 我们只是在尝试一个想法,希望一些用户能试用它并提供反馈。如果它不可行,我们随时可能放弃它。

Alpha 意味着“使用风险自担,可能会遇到迁移问题”:

  • 我们计划将此想法产品化,但它尚未定型。

Beta 意味着“您可以使用它,我们将尽最大努力为您最大限度地减少迁移问题”:

  • 它几近完成,用户反馈现在尤其重要。
  • 不过,它尚未百分百完成,因此仍可能发生变化(包括基于您自身反馈的变化)。
  • 提前关注废弃警告,以获得最佳更新体验。

我们将 ExperimentalAlphaBeta 统称为预稳定级别。

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

请注意,稳定性级别并不表明某个组件会多快发布为 Stable。同样,它们也不说明组件在发布前会有多大变化。它们仅说明组件变化的快慢以及用户面临的更新问题风险有多大。

Kotlin 组件的 GitHub 徽章

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

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

  • Stability(稳定性)状态。这表明各项目演进的速度以及用户采纳它时所承担的风险。 稳定性状态与 Kotlin 语言特性及其组件的稳定性级别完全一致:

    • Experimental stability level 代表 Experimental(实验性的)
    • Alpha stability level 代表 Alpha
    • Beta stability level 代表 Beta
    • Stable stability level 代表 Stable(稳定)
  • Support(支持)状态。这表明我们维护项目和帮助用户解决问题的承诺。 支持级别对所有 JetBrains 产品都是统一的。 关于详情,请参见 JetBrains 开源文档

子组件的稳定性

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

  • 一个 Stable 编译器可能包含一个实验性的特性;
  • 一个 Stable API 可能包含实验性的类或函数;
  • 一个 Stable 命令行工具可能包含实验性的选项。

我们确保精确地记录哪些子组件不是 Stable。我们还会尽最大努力尽可能地警告用户,并要求他们显式选择加入,以避免意外使用尚未发布为 Stable 的特性。

Kotlin 组件的当前稳定性

默认情况下,所有新组件都具有 Experimental(实验性)状态。

Kotlin 编译器

组件状态状态始于版本备注
Kotlin/JVMStable1.0.0
Kotlin/NativeStable1.9.0
Kotlin/JSStable1.3.0
Kotlin/WasmAlpha1.9.20
Analysis APIStable

核心编译器插件

组件状态状态始于版本备注
All-openStable1.3.0
No-argStable1.3.0
SAM-with-receiverStable1.3.0
kaptStable1.3.0
LombokExperimental1.5.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 多平台

组件状态状态始于版本备注
Kotlin MultiplatformStable1.9.20
Kotlin Multiplatform plugin for Android StudioBeta0.8.0独立于语言版本化

Kotlin/Native

组件状态状态始于版本备注
Kotlin/Native RuntimeStable1.9.20
Kotlin/Native 与 C 和 Objective-C 的互操作Beta1.3.0C 和 Objective-C 库导入的稳定性
klib binariesStable1.9.20不包括 cinterop klib,详见下文
cinterop klib binariesBeta1.3.0C 和 Objective-C 库导入的稳定性
CocoaPods integrationStable1.9.20

关于不同目标平台的支持级别,请参见

语言工具

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

语言特性和设计提案

关于语言特性和新设计提案,请参见