Releases

Kotlin 1.5.0 — первый крупный релиз 2021 года

Read this post in other languages:
English, Français, 日本語, 한국어, Deutsch, Português do Brasil, Español, 简体中文

Встречайте Kotlin 1.5.0 — первый функциональный релиз в соответствии с нашим новым графиком релизов!

Kotlin 1.5.0 включает стабильные версии таких возможностей языка, как JVM-записи (records), sealed-интерфейсы, inline-классы, а также использование нового IR-компилятора для JVM по умолчанию. Ваша обратная связь по превью-версиям этой функциональности в релизах Kotlin 1.4.30 и Kotlin 1.5.0 EAP очень помогла нам в доработке стабильных версий.
Мы очень благодарны вам за помощь, спасибо! 

Более 25 000 разработчиков уже попробовали новый IR-компилятор для JVM в IntelliJ IDEA.

Его преимущества станут заметны со временем. Новый компилятор использует тот же унифицированный пайплайн и ту же бизнес-логику, что и IR-компиляторы Kotlin/Native и Kotlin/JS — это позволит нам реализовывать большинство возможностей, оптимизаций и исправлений сразу для всех платформ. Это также позволит вам добавлять свои виды обработок и преобразований, которые будут автоматически работать на всех платформах.

Хотите задать вопрос по Kotlin 1.5.0? Роман Елизаров, Светлана Исакова и другие члены команды Kotlin будут рады ответить на ваши вопросы в ходе онлайн-встречи, посвященной Kotlin 1.5, которая состоится 25 мая (на англ. яз.).

Зарегистрироваться


Ниже мы рассмотрим:

Автоматическое обновление

Если вы пользуетесь IntelliJ IDEA или Android Studio, вы сможете автоматически обновиться до новой версии Kotlin, как только она выйдет.

Подробнее об установке Kotlin 1.5.0.

Стабильные версии возможностей языка

Kotlin 1.5.0 включает стабильные версии новых возможностей языка, которые были доступны для превью в версии 1.4.30:

  • Поддержка записей (records) JVM обеспечит совместимость с новыми классами Record из Java.
    Если при написании кода на Java вы хотите использовать класс Kotlin в качестве записи, сделайте его классом данных и отметьте аннотацией @JvmRecord:

    Читайте подробнее о правилах использования записей JVM.

  • Sealed-интерфейсы. Принцип работы модификатора sealed с интерфейсами — такой же, как при работе с классами: все реализации sealed-интерфейса известны во время компиляции.
  • Улучшения для sealed-классов. Раньше все подклассы необходимо было размещать в одном файле с sealed-классами. Теперь они могут располагаться в любом файле той же единицы компиляции и того же пакета.
  • Inline-классы — это подмножество классов значений (классов, хранящих только значения). Вы можете использовать такой класс в качестве обертки для значения определенного типа, избегая накладных расходов, связанных с выделением памяти. Для объявления используйте модификатор value.

Узнайте подробнее о возможностях языка в Kotlin 1.5.0

Улучшения стандартной и тестовой библиотек

Судя по опросу, проведенному нами в блог-посте Kotlin 1.5.0-RC, самыми ожидаемыми улучшениями библиотеки в Kotlin 1.5.0 являются новые стабильные API для целочисленных типов без знака.

Стандартная библиотека обеспечивает множество полезных возможностей, включая:

  • Новое стабильное API для целочисленных типов без знака, а также для их диапазонов, прогрессий и функций. Читайте подробнее о целочисленных типах без знака.
  • Функции-расширения для java.nio.file.Path, использующие современный неблокирующий ввод/вывод Java в Kotlin-идиоматическом стиле.
  • Улучшения в API для String и Char, в том числе новый API для изменения регистра строк и символов, не зависящий от локали, набор новых функций для преобразования символов в их целочисленные коды и числовые значения, а также мультиплатформенную поддержку других функций для работы с символами.
  • Изменения в API класса Duration, в том числе использование значений Long для внутреннего представления и появление новых свойств для получения продолжительности в виде значения типа Long.

Несколько важных улучшений вошло и в тестовую библиотеку:

  • Единая зависимость kotlin-test в общем исходном наборе в мультиплатформенных проектах.
  • Автоматический выбор тестового фреймворка для исходных наборов Kotlin/JVM при указании единственной зависимости — kotlin-test.
  • Ряд обновлений для функций утверждения (assert).

Подробнее об улучшениях библиотек

Kotlin/JVM

Kotlin 1.5.0 предлагает:

Kotlin/Native

Kotlin 1.5.0 предлагает:

  • Поддержку кэшей компилятора в режиме отладки для целевых платформ linuxX64 и iosArm64. Включение кэшей компилятора позволит значительно ускорить компиляцию для отладки (за исключением первой). Измерения, проведенные нами на тестовых проектах, показали увеличение скорости на 200%.
  • Выключение встроенных проверок на утечку памяти, позволяющее избежать проблем, вызывающих падение приложения. Подробнее о включении проверок на утечку памяти можно узнать здесь.

Kotlin/JS

С Kotlin/JS мы делаем шаг в сторону бета-версии нового IR-компилятора Kotlin/JS. Для IR-компилятора уже доступны многие популярные библиотеки: KVision, fritz2, doodle и другие.

Если у вас есть своя библиотека, вы можете добавить ее, выполнив для нее миграцию и обеспечив обратную совместимость.

Еще одно улучшение — использование webpack 5 вместо webpack 4 для сборки Kotlin/JS-проектов.

Как установить Kotlin 1.5.0

Если вы уже пользуетесь IntelliJ IDEA или Android Studio, IDE сама предложит вам обновиться до версии 1.5.0, как только она выйдет. Также вы можете обновить версию вручную — следуйте этой инструкции. Обратите внимание, что Kotlin 1.5.0 поддерживается только в Android Studio 4.2.0, Arctic Fox Canary 15 и новее.

Для полной поддержки Kotlin вы всегда можете скачать последние версии этих IDE:

  • IntelliJ IDEA — разработка приложений на Kotlin для разных платформ.
  • Android Studio — разработка приложений под Android и кросс-платформенных мобильных приложений.

Также проверьте, что вы обновили библиотеки kotlinx до совместимых версий и указали версию Kotlin 1.5.0 в билд-скриптах ваших проектов.

Скачать компилятор для командной строки можно с GitHub-страницы релиза.

Если вы столкнулись с проблемами

Kotlin 1.5: онлайн-мероприятие

Приглашаем на онлайн-встречу, посвященную Kotlin 1.5, которая состоится 25 мая. Команда Kotlin ответит на все ваши вопросы о последнем релизе, но присоединиться стоит, даже если у вас нет вопросов. Мероприятие продлится 1,5 часа.

Задавайте ваши вопросы в Twitter с хэштегом #kotlin15ask либо в регистрационной форме.

Зарегистрироваться

27-28 мая мы также проведем сессию Ask Me Anything (AMA) на Reddit, чтобы обсудить оставшиеся вопросы, а также любые новые (на англ. яз.).

Совместимость

Как и при выходе всех релизов, включающих новые функции, с выходом Kotlin 1.5.0 завершаются ранее анонсированные циклы прекращения поддержки некоторых возможностей. Все эти ситуации были тщательно рассмотрены языковым комитетом и перечислены в нашем руководстве по совместимости Kotlin 1.5. Вы также можете ознакомиться с подробностями этих изменений в YouTrack.

Рекомендуемые материалы

Kotlin на YouTube:

Блог Kotlin:

Документация Kotlin:

Внешние контрибьюторы

Мы очень благодарны всем внешним контрибьюторам, чьи пул-реквесты были включены в этот релиз:

Jinseong Jeon, Mads Ager, Ivan Gavrilovic, pyos, Steven Schäfer, Iaroslav Postovalov, scaventz, Kristoffer Andersen, Bingran, Stefan Wolf, Victor Turansky, fjjohnchen, justin.wei, Nelson Osacky, Mikhail Galanin, Michael Hoisie, Kris Hall, Kevin Bierhoff, Jiaxiang Chen, Hung Nguyen, Cedric Champeau.

От кого мы узнавали об ошибках

Спасибо всем, кто помог нам сделать Kotlin лучше, сообщая о проблемах в YouTrack! Мы составили список тех, кто отправил нем больше всего сообщений об ошибках. Отдельное спасибо этим пользователям:

Morgan Bartholomew (118 задач); Marc Knaup (78 задач); Ryan Nett (61 задача); Louis CAD (48 задач); Daniil Stepanov (44 задачи); AndroidDeveloperLB (39 задач); Victor Turansky (38 задач); Jinseong Jeon (35 задач); Zac Sweers (25 задач); Łukasz Wasylkowski (22 задачи); Tianyi Guan (21 задача); Christoph Sturm (20 задач); Axel Fontaine (19 задач); Alexander Nozik (18 задач); Robert Stoll (18 задач); Björn Kautler (18 задач); Róbert Papp (14 задач); Andreas Malik (14 задач); Lorenzo Neumann (14 задач);
Iaroslav Postovalov (14 задач).


Устанавливайте Kotlin 1.5.0 и регистрируйтесь на онлайн-встречу, посвященную Kotlin 1.5!

Ваша команда Kotlin
The Drive to Develop

Discover more