Подтвердить что ты не робот

Могут ли в производстве использоваться "экспериментальные" Kotlin-сопрограммы?

Можно ли использовать Kotlin coroutines в производстве и что означает их экспериментальный статус?

4b9b3361

Ответ 1

Kotlin coroutines могут и должны использоваться в производстве. Это была главная причина официально освободить их в Котлине 1.1. Выпустив их, команда JetBrains обязалась поддерживать обратную совместимость с любыми изменениями, которые им представляются в младших выпусках по мере их эволюции, позволяя людям безопасно использовать их в сложных производственных приложениях.

Вкратце, разница между "экспериментальными" и "нормальными" функциями заключается в том, что для обычных функций Kotlin новые материалы не могут быть добавлены в незначительные обновления, поскольку существует "полная совместимость", в то время как для экспериментальных функций новые вещи могут быть добавлен, но ничто не может быть удалено (из-за гарантии обратной совместимости).

Экспериментальные сопрограммы используют отдельное имя пакета kotlin.coroutines.experimental, поэтому, когда проект coroutines завершен и они переходят в пакет kotlin.coroutines, старый скомпилированный код не будет прерываться, но будет продолжать работать через отдельную библиотеку поддержки.

Дальнейшее обсуждение (долгочитанное) о том, почему они являются "экспериментальными" и что это значит, можно найти в этом сообщении от Андрея Бреслав.

Тот же вопрос относится к библиотекам поддержки сопрограмм.

Текущая версия kotlinx.coroutines предназначена для использования в производстве. Это довольно хорошо охвачено испытаниями, многие вещи уже оптимизированы, все изменения сделаны с учетом проблем обратной совместимости с ранее скомпилированным кодом. Это, безусловно, служит испытательным стендом для различных вещей на основе coroutine, поэтому есть некоторые части, которые четко обозначены как "работа в процессе" или "неустойчивость" в документации соответствующих функций и классов. Однако по умолчанию все общедоступные API в kotlinx.coroutines считаются стабильными и при необходимости разрабатываются с соответствующими средствами миграции.