Skip to content

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

Kotlin言語とツールセットは、JVM、JS、Nativeターゲット用のコンパイラ、標準ライブラリ、その他さまざまな付属ツールなど、多くのコンポーネントに分かれています。これらのコンポーネントの多くは、公式にStableとしてリリースされており、これは快適なアップデートとモダンな言語を維持するという原則に従い、後方互換性のある方法で進化してきたことを意味します。

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

安定性レベルの説明

これらの安定性レベルとその意味に関する簡単なガイドです。

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

  • 私たちは単にアイデアを試しており、一部のユーザーに試用してもらってフィードバックを得たいと考えています。うまくいかない場合は、いつでも破棄する可能性があります。

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

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

Betaは「使用できます。移行の問題を最小限に抑えるために最善を尽くします」を意味します。

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

ExperimentalAlpha、_Beta_を総称してプレ安定版レベルと呼びます。

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

安定性レベルは、コンポーネントがどれくらい早くStableとしてリリースされるかを示すものではありません。同様に、リリース前にコンポーネントがどれだけ変更されるかを示すものでもありません。それらは、コンポーネントがどれだけ速く変化しているか、およびユーザーが抱えるアップデート問題のリスクの大きさのみを示します。

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

Kotlin GitHub organizationは、さまざまなKotlin関連プロジェクトをホストしています。その中にはフルタイムで開発しているものもあれば、サイドプロジェクトであるものもあります。

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

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

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

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

安定したコンポーネントが、実験的なサブコンポーネントを持つ場合があります。例えば:

  • 安定したコンパイラが実験的な機能を持つ場合があります。
  • 安定したAPIが実験的なクラスまたは関数を含む場合があります。
  • 安定したコマンドラインツールが実験的なオプションを持つ場合があります。

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

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

デフォルトでは、すべての新しいコンポーネントはExperimentalステータスを持ちます。

Kotlin compiler

コンポーネントステータスバージョンからのステータスコメント
Kotlin/JVMStable1.0.0
Kotlin/NativeStable1.9.0
Kotlin/JSStable1.3.0
Kotlin/WasmAlpha1.9.20
Analysis APIStable

Core compiler plugins

コンポーネントステータスバージョンからのステータスコメント
All-openStable1.3.0
No-argStable1.3.0
SAM-with-receiverStable1.3.0
kaptStable1.3.0
LombokExperimental1.5.20
Power-assertExperimental2.0.0

Kotlin libraries

コンポーネントステータスバージョンからのステータスコメント
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 interop with C and Objective-CBeta1.3.0CおよびObjective-Cライブラリインポートの安定性
klib binariesStable1.9.20cinterop klibsは含まれません。以下を参照してください
cinterop klib binariesBeta1.3.0CおよびObjective-Cライブラリインポートの安定性
CocoaPods integrationStable1.9.20

異なるターゲットのサポートレベルに関する詳細については、を参照してください。

Language tools

コンポーネントステータスバージョンからのステータスコメント
Scripting syntax and semanticsAlpha1.2.0
Scripting embedding and extension APIBeta1.5.0
Scripting IDE supportBetaIntelliJ IDEA 2023.1以降で利用可能
CLI scriptingAlpha1.2.0

言語機能および設計提案

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