#compiler
The road to the K2 compiler
Команда Kotlin давно трудиться над обновлением компилятора. Уже выкатили Backedn IR, в будущих версиях языка будет Frontend IR. По итогу нам обещали приличный прирост скорости компиляции и поток современных фичей
The road to the K2 compiler
Команда Kotlin давно трудиться над обновлением компилятора. Уже выкатили Backedn IR, в будущих версиях языка будет Frontend IR. По итогу нам обещали приличный прирост скорости компиляции и поток современных фичей
#kotlin
Вышел Kotlin 1.7.0
👉 Альфа версия K2 компилятора (скорость больше чем в 2 раза)
👉 Теперь можно использовать делегаты в inline классах
👉 Новый подход в инкрементальной компиляции кода в Gradle
👉 Стабилизация OptIn аннотации
👉 Аналогично параметрам в лямбдах теперь аргументах типа (Generic) можно также игнорировать тип
👉 Стабилизация строго non-null типов
👉 Kotlin/JVM компилируется на ~10% быстрее
👉 Java Target 1.6 удален
👉 Улучшения в Kotlin/Native
👉 Улучшения в Kotlin/JS
👉 Улучшения в стандартной библиотеке (разберу отдельно в @kotlin_broadcast)
👉 Улучшения в Gradle (разберу отдельно в @kotlin_broadcast)
Полезные ссылки
👉 Обновленный Kotlin roadmap
📺 Видео версия здесь (24 мин)
Вышел Kotlin 1.7.0
👉 Альфа версия K2 компилятора (скорость больше чем в 2 раза)
👉 Теперь можно использовать делегаты в inline классах
👉 Новый подход в инкрементальной компиляции кода в Gradle
👉 Стабилизация OptIn аннотации
👉 Аналогично параметрам в лямбдах теперь аргументах типа (Generic) можно также игнорировать тип
👉 Стабилизация строго non-null типов
👉 Kotlin/JVM компилируется на ~10% быстрее
👉 Java Target 1.6 удален
👉 Улучшения в Kotlin/Native
👉 Улучшения в Kotlin/JS
👉 Улучшения в стандартной библиотеке (разберу отдельно в @kotlin_broadcast)
👉 Улучшения в Gradle (разберу отдельно в @kotlin_broadcast)
Полезные ссылки
👉 Обновленный Kotlin roadmap
📺 Видео версия здесь (24 мин)
🔥40👍19🤔2👎1
Чтобы попробовать Kotlin 2.0 надо будет переезжать на библиотеки с его поддержкой:
👉 Google KSP
👉 KotlinX Coroutines с поддержкой 2.0 я не нашел, но может и не нужна спец версия
👉 KotlinX Serialiazation 1.7.0-RC с поддержкой Kotlin 2.0
👉 Отдельный Gradle плагин для Compose (Jetpack и Multiplatform) с поддержкой Kotlin 2.0
👉 KAPT поддерживает Kotlin 2.0 в экспериментальном режиме
👉 Начиная с IntelliJ IDEA 2023.3 and Android Studio Iguana (2023.2.1), есть поддержка Kotlin 2.0
👉 SQLDelight работает
👉 SKIE от Touchlab тоже имеет поддержку Kotlin 2.0
Полное руководство по миграции на компилятор K2 и последствия перехода описала JetBrains в документации
Полный список всех плагинов компилятора и поддержку ими K2 смотрите тут
#kotlin2 #k2
👉 Google KSP
👉 KotlinX Coroutines с поддержкой 2.0 я не нашел, но может и не нужна спец версия
👉 KotlinX Serialiazation 1.7.0-RC с поддержкой Kotlin 2.0
👉 Отдельный Gradle плагин для Compose (Jetpack и Multiplatform) с поддержкой Kotlin 2.0
👉 KAPT поддерживает Kotlin 2.0 в экспериментальном режиме
👉 Начиная с IntelliJ IDEA 2023.3 and Android Studio Iguana (2023.2.1), есть поддержка Kotlin 2.0
👉 SQLDelight работает
👉 SKIE от Touchlab тоже имеет поддержку Kotlin 2.0
Полное руководство по миграции на компилятор K2 и последствия перехода описала JetBrains в документации
Полный список всех плагинов компилятора и поддержку ими K2 смотрите тут
#kotlin2 #k2
👍18🔥4
Что нового в Koltin 2.0 (полный список изменений тут)
👉 K2 компилятор: быстрее и единый под все таргеты
👉 Smart Cast теперь понимает больше сценариев
👉 При компиляции Kotlin Multiplatform исходников отдельно этапы проходят для common и platform кода
👉 JVM Генерация лямбд с использованием invokedynamic
👉 Улучшения в Kotlin/Native для iOS
👉 Улучшения скорости работы и интеропа с JS в Kotlin/WASM
👉 Улучшения в Gradle (сделаю отдельный пост)
Стандартная библиотека
👉 Метод enumEntries<T>() стабильный и приходит на замену enumValues<T>()
👉 Стабильный AutoCloseable
👉 Часть API перенесли в Common
Полный список всех плагинов компилятора и поддержку ими K2 смотрите тут
#kotlin2 #k2
👉 K2 компилятор: быстрее и единый под все таргеты
👉 Smart Cast теперь понимает больше сценариев
👉 При компиляции Kotlin Multiplatform исходников отдельно этапы проходят для common и platform кода
👉 JVM Генерация лямбд с использованием invokedynamic
👉 Улучшения в Kotlin/Native для iOS
👉 Улучшения скорости работы и интеропа с JS в Kotlin/WASM
👉 Улучшения в Gradle (сделаю отдельный пост)
Стандартная библиотека
👉 Метод enumEntries<T>() стабильный и приходит на замену enumValues<T>()
👉 Стабильный AutoCloseable
👉 Часть API перенесли в Common
Полный список всех плагинов компилятора и поддержку ими K2 смотрите тут
#kotlin2 #k2
🔥24🏆4❤3