Чи можна використовувати котуліни Kotlin у виробництві та що означає їх експериментальний статус?
Чи можна використовувати котуліни Kotlin у виробництві та що означає їх експериментальний статус?
Відповіді:
ОНОВЛЕННЯ : Програми Kotlin більше не є експериментальними станом на Kotlin 1.3.
Програми Kotlin можуть і повинні використовуватися у виробництві. Це було основною причиною офіційного звільнення їх у Kotlin 1.1. Випустивши їх, команда JetBrains пообіцяла підтримувати зворотну сумісність щодо будь-яких змін, що вносяться до них у незначні випуски в міру їх розвитку, дозволяючи людям безпечно випробувати їх у складних виробничих додатках.
Коротше кажучи, різниця між «експериментальними» та «звичайними» функціями полягає в тому, що для звичайних функцій Kotlin нові речі не можна додавати при незначних оновленнях, оскільки існує гарантія «повної сумісності», тоді як для експериментальних функцій можна додавати нові але нічого не можна видалити (через гарантію зворотної сумісності).
Експериментальні програми використовують окреме kotlin.coroutines.experimental
ім'я пакета, так що, коли проектування програм буде завершено і вони перейдуть до kotlin.coroutines
пакету, старий скомпільований код не зламається, а продовжить працювати через окрему бібліотеку підтримки.
Подальше обговорення (довго читане) про те, чому вони є "експериментальними" і що це означає, можна знайти в цьому дописі на форумі Андрія Бреслава.
Те саме питання стосується бібліотек підтримки програм.
Поточна версія kotlinx.coroutines
призначена для виробничого використання. Він досить добре покритий тестами, багато речей вже оптимізовано, всі зміни внесені з урахуванням питань зворотної сумісності з раніше складеним кодом. Це, безумовно, служить випробувальним стендом для різних речей, заснованих на корутині, тому є деякі частини, які чітко позначені як "незавершене виробництво" або "нестабільне" в документації відповідних функцій та класів. Однак за замовчуванням усі загальнодоступні API-інтерфейси kotlinx.coroutines
вважаються стабільними та розробляються, якщо потрібно, за допомогою відповідних засобів перенесення.
The feature "coroutines" is experimental (see more here)
та посилання на kotlinlang.org/docs/diagnostics/experimental-coroutines.html