Устойчивость компонентов Kotlin
Язык и набор инструментов Kotlin разделены на множество компонентов, таких как компиляторы для JVM, JS и Native целей, Стандартная библиотека, различные вспомогательные инструменты и так далее. Многие из этих компонентов были официально выпущены как Стабильные, что означает, что они развиваются в обратной совместимой манере, следуя принципам принципов Комфортных обновлений и Сохранения актуальности языка. К таким стабильным компонентам относятся, например, компилятор Kotlin для JVM, Стандартная библиотека и Coroutines.
Следуя принципу Петли обратной связи, мы выпускаем много вещей рано для того, чтобы сообщество смогло их опробовать, поэтому ряд компонентов пока не выпущен как Стабильные. Некоторые из них находятся на очень ранней стадии, некоторые более зрелые. Мы помечаем их как Экспериментальные, Альфа или Бета в зависимости от того, насколько быстро каждый компонент развивается и какой риск принимают пользователи, когда его используют.
Подробное описание уровней стабильности
Вот краткое руководство по этим уровням стабильности и их значению:
Экспериментальные означает «пробовать только в учебных проектах»:
Мы только что тестируем идею и хотим, чтобы некоторые пользователи поработали с ней и предоставили отзывы. Если это не сработает, мы можем отказаться от неё в любой момент.
Альфа означает «использовать на свой страх и риск, ожидаются проблемы с миграцией»:
Мы решили выпустить эту идею, но она ещё не достигла окончательной формы.
Бета означает «вы можете использовать её, мы сделаем всё возможное, чтобы свести к минимуму проблемы с миграцией для вас»:
Это почти готово, отзывы пользователей особенно важны сейчас.
Тем не менее, она ещё не на 100% закончена, поэтому изменения возможны (в том числе на основе ваших отзывов).
Следите за предупреждениями о устаревании заранее для наилучшего опыта обновления.
Мы объединяем Экспериментальные, Альфа и Бета как до-стабильные уровни.
Стабильные означает «использовать её даже в самых консервативных сценариях»:
Это готово. Мы будем развивать её в соответствии с нашими строгими правилами обратной совместимости.
Обратите внимание, что уровни стабильности ничего не говорят о том, как скоро компонент будет выпущен как стабильный. Точно так же они не указывают, насколько сильно компонент изменится до выпуска. Они только указывают, насколько быстро меняется компонент и какой риск проблем с обновлениями принимают пользователи.
Значки GitHub для компонентов Kotlin
Организация Kotlin на GitHub размещает различные проекты, связанные с Kotlin. Некоторые из них мы разрабатываем постоянно, а другие являются побочными проектами.
Каждый проект Kotlin имеет два значка GitHub, описывающие его стабильность и статус поддержки:
-
Стабильность статус. Это показывает, насколько быстро каждый проект развивается и какой риск принимают пользователи при его использовании. Статус стабильности полностью совпадает с уровнем стабильности функций языка Kotlin и его компонентов:
соответствует Экспериментальному
соответствует Альфа
соответствует Бета
соответствует Стабильному
Поддержка статус. Это показывает нашу приверженность обслуживанию проекта и помощи пользователям в решении их проблем. Уровень поддержки унифицирован для всех продуктов JetBrains.
Подробности см. в документе JetBrains Confluence.
Устойчивость подкомпонентов
Стабильный компонент может иметь экспериментальный подкомпонент, например:
стабильный компилятор может иметь экспериментальную функцию;
стабильный API может включать экспериментальные классы или функции;
стабильный инструмент командной строки может иметь экспериментальные опции.
Мы точно документируем, какие подкомпоненты не являются стабильными. Мы также делаем всё возможное, чтобы предупредить пользователей, где это возможно, и просим их явно согласиться на использование функций, которые не были выпущены как стабильные.
Текущая стабильность компонентов Kotlin
Компонент |
Статус |
Статус с версии |
Комментарий |
|---|---|---|---|
Kotlin/JVM |
Стабильный |
1.0 |
|
Kotlin K2 (JVM) |
Alpha |
1.7 |
|
kotlin-stdlib (JVM) |
Стабильный |
1.0 |
|
Coroutines |
Стабильный |
1.3 |
|
kotlin-reflect (JVM) |
Beta |
1.0 |
|
Kotlin/JS (Classic back-end) |
Стабильный |
1.3 |
Устарело с 1.8.0, прочитайте руководство по миграции IR |
Kotlin/JVM (IR-based) |
Стабильный |
1.5 |
|
Kotlin/JS (IR-based) |
Стабильный |
1.8 |
|
Kotlin/Native Runtime |
Beta |
1.3 |
|
Kotlin/Native новый менеджер памяти |
Beta |
1.7.20 |
|
klib binaries |
Alpha |
1.4 |
|
Kotlin Multiplatform |
Beta |
1.7.20 |
|
Kotlin/Native взаимодействие с C и Objective C |
Beta |
1.3 |
|
CocoaPods integration |
Beta |
1.3 |
|
Плагин Kotlin Multiplatform Mobile для Android Studio |
Alpha |
0.3.0 |
|
Функция языка expect/actual |
Beta |
1.2 |
|
Синтаксис KDoc |
Стабильный |
1.0 |
|
Dokka |
Beta |
1.6 |
|
Синтаксис и семантика скриптов |
Alpha |
1.2 |
|
Встраивание скриптов и API расширений |
Beta |
1.5 |
|
Поддержка скриптов в IDE |
Экспериментальный |
1.2 |
|
Скрипты CLI |
Alpha |
1.2 |
|
API плагина компилятора |
Экспериментальный |
1.0 |
|
Плагин сериализации компилятора |
Стабильный |
1.4 |
|
Базовая библиотека сериализации |
Стабильный |
1.0.0 |
Версия отличается от версии языка |
Встроенные классы |
Стабильный |
1.5 |
|
Беззнаковая арифметика |
Стабильный |
1.5 |
|
Contracts in stdlib |
Стабильный |
1.3 |
|
Контракты, определяемые пользователем |
Экспериментальный |
1.3 |
|
Все остальные экспериментальные компоненты, по умолчанию |
Экспериментальный |
N/A |
© 2010–2023 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/components-stability.html