Могут ли "экспериментальные" Сорокины Котлина быть использованы в производстве?


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

1 64

1 ответ:

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

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

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

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

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

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