Skip to content

Kotlinコンポーネントの安定性

Kotlin言語とツールセットは、JVM、JS、Nativeターゲット向けのコンパイラ、標準ライブラリ、様々な付属ツールなど、多くのコンポーネントに分けられています。 これらのコンポーネントの多くは、公式にStableとしてリリースされています。これは、_Comfortable Updates_と_Keeping the Language Modern_の原則に従って、後方互換性のある方法で進化してきたことを意味します。

_フィードバックループ_の原則に従い、コミュニティが試せるように、多くのものを早期にリリースしています。そのため、多くのコンポーネントはまだStableとしてリリースされていません。 そのうちいくつかは非常に初期段階にあり、いくつかはより成熟しています。 私たちは、各コンポーネントがどれだけ速く進化するか、そしてユーザーが導入時に負うリスクのレベルに応じて、これらをExperimentalAlpha、またはBetaとマークしています。

安定性レベルの説明

これらの安定性レベルとその意味について簡単に説明します。

Experimental は「おもちゃのプロジェクトでのみ試してください」という意味です。

  • アイデアを試している段階であり、何人かのユーザーに試してもらってフィードバックを求めています。うまくいかなければ、いつでも中止する可能性があります。

Alpha は「自己責任で使用し、移行の問題を覚悟してください」という意味です。

  • このアイデアを製品化する意向ですが、まだ最終的な形には達していません。

Beta は「使用できますが、移行の問題を最小限に抑えるよう最善を尽くします」という意味です。

  • ほぼ完成しており、ユーザーからのフィードバックが特に重要です。
  • まだ100%完成しているわけではないため、変更の可能性があります(自身のフィードバックに基づくものも含む)。
  • 最良のアップデートエクスペリエンスのために、非推奨の警告に事前に注意してください。

ExperimentalAlphaBeta を総称してpre-stableレベルと呼びます。

Stable は「最も保守的なシナリオでも使用できます」という意味です。

安定性レベルは、コンポーネントがいつStableとしてリリースされるかについては何も述べていないことに注意してください。同様に、リリース前にコンポーネントがどれだけ変更されるかを示すものでもありません。これらは、コンポーネントがどれだけ速く変化しているか、そしてユーザーがどれだけ更新の問題を抱えるリスクがあるかのみを示しています。

KotlinコンポーネントのGitHubバッジ

KotlinのGitHub組織は、様々なKotlin関連プロジェクトをホストしています。 そのうちいくつかは専任で開発しており、その他はサイドプロジェクトです。

各Kotlinプロジェクトには、その安定性とサポートステータスを示す2つのGitHubバッジがあります。

  • Stability ステータス。これは、各プロジェクトがどれだけ速く進化しているか、そしてユーザーが採用時にどれだけのリスクを負っているかを示します。 この安定性ステータスは、Kotlin言語機能とそのコンポーネントの安定性レベルと完全に一致します。

    • Experimental stability levelExperimental を表します
    • Alpha stability levelAlpha を表します
    • Beta stability levelBeta を表します
    • Stable stability levelStable を表します
  • Support ステータス。これは、プロジェクトを維持し、ユーザーが問題を解決するのを支援するという私たちのコミットメントを示します。 サポートレベルは、すべてのJetBrains製品で統一されています。 詳細については、JetBrainsのオープンソースドキュメントを参照してください。

サブコンポーネントの安定性

安定したコンポーネントにも実験的なサブコンポーネントが含まれる場合があります。例えば、

  • 安定したコンパイラに実験的な機能が含まれることがあります。
  • 安定したAPIに実験的なクラスや関数が含まれることがあります。
  • 安定したコマンドラインツールに実験的なオプションが含まれることがあります。

私たちは、どのサブコンポーネントがStableではないかを正確に文書化するようにしています。 また、可能な限りユーザーに警告し、安定版としてリリースされていない機能を意図せずに使用することを避けるため、明示的にオプトインするように求めています。

Kotlinコンポーネントの現在の安定性

NOTE

デフォルトでは、すべての新しいコンポーネントは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 Multiplatform

コンポーネントステータスステータスが適用されたバージョンコメント
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.0
klibバイナリStable1.9.20cinterop klibは含まれません。以下を参照してください
cinterop klibバイナリBeta1.3.0
CocoaPodsとの統合Stable1.9.20

Kotlin/Nativeターゲットのサポートに関する詳細は、を参照してください。

言語ツール

コンポーネントステータスステータスが適用されたバージョンコメント
スクリプトの構文とセマンティクスAlpha1.2.0
スクリプトの埋め込みと拡張APIBeta1.5.0
スクリプトのIDEサポートBetaIntelliJ IDEA 2023.1以降で利用可能
CLIスクリプトAlpha1.2.0

言語機能と設計提案

言語機能と新しい設計提案については、を参照してください。