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

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

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

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

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

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

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

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

Intereting Posts