Можно ли использовать Kotlin coroutines в производстве и что означает их экспериментальный статус?
Могут ли в производстве использоваться "экспериментальные" Kotlin-сопрограммы?
Ответ 1
Kotlin coroutines могут и должны использоваться в производстве. Это была главная причина официально освободить их в Котлине 1.1. Выпустив их, команда JetBrains обязалась поддерживать обратную совместимость с любыми изменениями, которые им представляются в младших выпусках по мере их эволюции, позволяя людям безопасно использовать их в сложных производственных приложениях.
Вкратце, разница между "экспериментальными" и "нормальными" функциями заключается в том, что для обычных функций Kotlin новые материалы не могут быть добавлены в незначительные обновления, поскольку существует "полная совместимость", в то время как для экспериментальных функций новые вещи могут быть добавлен, но ничто не может быть удалено (из-за гарантии обратной совместимости).
Экспериментальные сопрограммы используют отдельное имя пакета kotlin.coroutines.experimental
, поэтому, когда проект coroutines завершен и они переходят в пакет kotlin.coroutines
, старый скомпилированный код не будет прерываться, но будет продолжать работать через отдельную библиотеку поддержки.
Дальнейшее обсуждение (долгочитанное) о том, почему они являются "экспериментальными" и что это значит, можно найти в этом сообщении от Андрея Бреслав.
Тот же вопрос относится к библиотекам поддержки сопрограмм.
Текущая версия kotlinx.coroutines
предназначена для использования в производстве. Это довольно хорошо охвачено испытаниями, многие вещи уже оптимизированы, все изменения сделаны с учетом проблем обратной совместимости с ранее скомпилированным кодом. Это, безусловно, служит испытательным стендом для различных вещей на основе coroutine, поэтому есть некоторые части, которые четко обозначены как "работа в процессе" или "неустойчивость" в документации соответствующих функций и классов. Однако по умолчанию все общедоступные API в kotlinx.coroutines
считаются стабильными и при необходимости разрабатываются с соответствующими средствами миграции.