Skip to content

Kotlin 元件的穩定性

Kotlin 語言與工具集被劃分為許多元件,例如 JVM、JS 與 Native 目標的編譯器、標準程式庫 (Standard Library)、各種隨附工具等等。 這些元件中有許多已正式發布為 穩定 (Stable),這意味著它們遵循 「舒適更新 (Comfortable Updates)」與「保持語言現代化 (Keeping the Language Modern)」的原則,以回溯相容的方式進行演進。

遵循「回饋循環 (Feedback Loop)」原則,我們提早發布許多內容供社群試用,因此部分元件尚未以 穩定 (Stable) 狀態發布。 其中有些處於非常早期階段,有些則較為成熟。 我們根據每個元件演進的速度以及使用者採用時承擔的風險程度,將其標記為 實驗性 (Experimental)AlphaBeta

穩定性層級說明

以下是這些穩定性層級及其含義的快速指南:

實驗性 (Experimental) 意味著「僅在玩具專案中嘗試」:

  • 我們正在測試一個想法及其可行性。我們希望一些使用者嘗試並分享他們的回饋。其範圍極小,且該功能隨時可能變更或消失。我們不保證穩定性或相容性。

Alpha 意味著「我們正在測試這是否應達到生產就緒狀態」:

  • 我們打算將此轉化為產品,並正在驗證其使用者價值與市場契合度,以塑造其最終形態。功能集仍未完成,預期會有重大變更 (breaking changes)。如果假設不成立,我們可能會大幅變更或停止該功能。

Beta 意味著「您可以使用它,我們將盡力為您減少遷移問題」:

  • 它已接近完成,目前使用者回饋尤為重要。
  • 儘管如此,它尚未 100% 完成,因此仍有可能發生變更(包括基於您自身回饋的變更)。
  • 請提前留意棄用警告,以獲得最佳的更新體驗。

我們將 實驗性 (Experimental)AlphaBeta 統稱為 預備穩定 (pre-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 開源文件

子元件的穩定性

一個穩定的元件可能包含實驗性的子元件,例如:

  • 穩定的編譯器可能包含實驗性功能;
  • 穩定的 API 可能包含實驗性的類別或函式;
  • 穩定的命令列工具可能包含實驗性選項。

我們確保會精確地記錄哪些子元件不是 穩定 (Stable) 的。 我們也會盡力在可能的情況下提醒使用者,並要求明確啟用 (opt-in) 它們,以避免意外使用尚未以穩定版發布的功能。

Kotlin 元件的當前穩定性

預設情況下,所有新元件均具備實驗性 (Experimental) 狀態。

Kotlin 編譯器

元件狀態自該版本起的狀態備註
Kotlin/JVM穩定 (Stable)1.0.0
Kotlin/Native穩定 (Stable)1.9.0
Kotlin/JS穩定 (Stable)1.3.0
Kotlin/WasmBeta2.2.20
Analysis API穩定 (Stable)

核心編譯器外掛程式

元件狀態自該版本起的狀態備註
All-open穩定 (Stable)1.3.0
No-arg穩定 (Stable)1.3.0
SAM-with-receiver穩定 (Stable)1.3.0
kapt穩定 (Stable)1.3.0
LombokAlpha2.3.20
Power-assert實驗性 (Experimental)2.0.0

Kotlin 程式庫

元件狀態自該版本起的狀態備註
kotlin-stdlib (JVM)穩定 (Stable)1.0.0
kotlinx-coroutines穩定 (Stable)1.3.0
kotlinx-serialization穩定 (Stable)1.0.0
kotlin-metadata-jvm穩定 (Stable)2.0.0
kotlin-reflect (JVM)Beta1.0.0
kotlinx-datetimeAlpha0.2.0
kotlinx-ioAlpha0.2.0

Kotlin Multiplatform

元件狀態自該版本起的狀態備註
Kotlin Multiplatform穩定 (Stable)1.9.20
適用於 Android Studio 的 Kotlin Multiplatform 外掛程式Beta0.8.0與語言分開建立版本

Kotlin/Native

元件狀態自該版本起的狀態備註
Kotlin/Native Runtime穩定 (Stable)1.9.20
Kotlin/Native 與 C 及 Objective-C 的互通性Beta1.3.0C 與 Objective-C 程式庫匯入的穩定性
klib 二進位檔穩定 (Stable)1.9.20不包括 cinterop klib,見下方
cinterop klib 二進位檔Beta1.3.0C 與 Objective-C 程式庫匯入的穩定性
CocoaPods 整合穩定 (Stable)1.9.20

有關不同目標支援層級的更多資訊,請參閱

語言工具

元件狀態自該版本起的狀態備註
指令碼語法與語意Alpha1.2.0
指令碼內嵌與擴充 APIBeta1.5.0
指令碼 IDE 支援Beta自 IntelliJ IDEA 2023.1 及更高版本起可用
CLI 指令碼Alpha1.2.0

語言特性與設計提案

有關語言特性與新的設計提案,請參閱