Kotlinコルーチンは実稼働環境で使用できますか?また、それらの実験ステータスはどういう意味ですか?
[〜#〜] update [〜#〜]:KotlinコルーチンはKotlin 1.3以降、実験的ではなくなりました。
Kotlinコルーチンは、本番環境で使用できます。それがKotlin 1.1で公式にリリースする主な理由でした。それらをリリースしたJetBrainsチームは、マイナーリリースで導入された変更に関して、複雑な実稼働アプリケーションで安全に試すことができるようにするとともに、それらの変更に関して下位互換性を維持することを約束しました。
つまり、「実験」機能と「通常」機能の違いは、通常のKotlin機能ではマイナーアップデートで新しいものを追加できないことです。「完全な互換性」の保証があるためです。しかし、何も削除することはできません(下位互換性の保証のため)。
実験的なコルーチンは個別のkotlin.coroutines.experimental
パッケージ名を使用するため、コルーチンのデザインが確定してkotlin.coroutines
パッケージに移行しても、古いコンパイル済みコードは破損しませんが、個別のサポートライブラリを介して動作し続けます。
それらが「実験的」である理由と、これが何を意味するかについてのさらなる議論(長い読み)は、Andrey Breslavによる forum post にあります。
同じ問題は、コルーチンルーチンをサポートするライブラリにも当てはまります。
kotlinx.coroutines
の現在のバージョンは、本番用に設計されています。これはテストで十分にカバーされており、多くのものがすでに最適化されており、すべての変更は以前にコンパイルされたコードとの後方互換性の問題を考慮して行われます。確かにさまざまなコルーチンベースのもののテストベッドとして機能するため、対応する関数とクラスのドキュメントで「作業中」または「不安定」と明確にマークされている部分があります。ただし、デフォルトでは、kotlinx.coroutines
のすべてのパブリックAPIは安定していると見なされ、必要に応じて適切な移行支援により進化しています。