Spec-Zone.ru › Kotlin 1.6

Дорожная карта Kotlin

Последнее изменение

Ноябрь 2021 года

Следующее обновление

Апрель 2022 года

Добро пожаловать на дорожную карту Kotlin! Получите предварительный просмотр приоритетов команды Kotlin.

Ключевые приоритеты

Цель этой дорожной карты — дать вам общее представление. Вот список наших ключевых приоритетов — областей, в которые мы вкладываем наибольшие усилия:

  • Быстрая обратная связь: ускорение цикла изменение-тест-отладка.

  • Новый компилятор: переработка компилятора Kotlin, оптимизированная для скорости, параллельности и унификации. Позже мы также будем работать над его расширяемостью.

  • Быстрый и стабильный IDE: улучшение стабильности и производительности плагина Kotlin.

  • Kotlin для разработки серверных приложений на JVM: расширение поддержки серверных сценариев в экосистеме Kotlin.

  • Kotlin Multiplatform Mobile: улучшение пользовательского опыта и функциональности для совместного использования кода на мобильных платформах.

Дорожная карта Kotlin по подсистемам

Чтобы увидеть самые масштабные проекты, над которыми мы работаем, посетите доску YouTrack или таблицу Детали дорожной карты.

Если у вас есть вопросы или отзывы о дорожной карте или элементах в ней, не стесняйтесь разместить их на YouTrack билетах или в канале #kotlin-roadmap в Slack Kotlin (запросите приглашение).

Доска YouTrack

Посетите доску дорожной карты в нашем трекере задач YouTrack YouTrack

Roadmap board in YouTrack

Детали дорожной карты

Подсистема

В центре внимания сейчас

Отложено на потом

Язык

  • 🆕 Исследование и прототип решения на основе пространств имён для статических элементов и статических расширений

  • 🆕 Рассмотреть поддержку встроенных запечатанных классов

  • 🆕 Разрешить определяемые типы, которые определённо не являются пустыми

  • 🆕 Разработать и реализовать решение для toString для объектов

  • 🆕 Обеспечить современную и производительную замену для Enum.values()

  • 🆕 Разрешить реализацию путём делегирования во встроенному значению встроенного класса

  • Выпуск аннотаций OptIn

  • Выпуск вывода builder

  • Поддержка запечатанных (исчерпывающих) whens

  • Прототип множественных получателей

Ядро компилятора

  • 🆕 Стабилизировать API плагина компилятора K2

  • 🆕 Исследовать JS бэкенд для компилятора K2

  • Выпуск компилятора K2/JVM в Alpha

  • Поддерживать текущий компилятор

  • Завершить поддержку jspecify

  • Улучшить Kotlin scripting

Kotlin/JVM

  • 🆕 Выпустить kotlinx-metadata-jvm как Stable

  • 🆕 Исправить проблемы, связанные со встроенными классами на JVM

  • 🆕 Разрешить приватные классы верхнего уровня или псевдонимы типов с одинаковыми именами в разных файлах на JVM

  • 🆕 Предоставить возможность перечислять все прямые подклассы запечатанного класса во время компиляции без рефлексии

  • 🆕 Поддержка ссылок на методы для конструкторов функциональных интерфейсов

  • 🆕 Поддержка ссылок на синтетические свойства Java

  • Поддерживать новый бэкенд JVM IR

  • Улучшить время компиляции нового бэкенда JVM IR

  • Стабилизировать экспериментальные функции, специфичные для JVM

Kotlin/JS

  • Сделать новый бэкенд JS IR стабильным

  • JS IR BE: Добавить возможность генерировать отдельные JS-файлы для каждого модуля

  • Поддерживать старый бэкенд JS, исправляя критические ошибки

  • ⏸ JS: поддержка ES6 в качестве целевой среды компиляции

  • ⏸ Улучшить поддержку Dukat

Kotlin/Wasm

  • Реализовать экспериментальную версию бэкенда компилятора Kotlin/Wasm

Примечание: Поддержка Wasm в Kotlin/Native (через LLVM) будет устаревшей и удалена

Kotlin/Native

  • 🆕 Продвинуть новый менеджер памяти до Alpha

  • Улучшить время компиляции

  • Улучшить экспорт кода Kotlin в Objective-C

  • Native: обеспечить бинарную совместимость между инкрементными релизами

  • ⏸ Поддержка сборки Kotlin/Native для Mac Catalyst (x86-64 и arm64)

  • ⏸ Поддержка прямой совместимости со Swift

  • ⏸ Поддержка запуска бинарных файлов, созданных Kotlin/Native, на Alpine Linux

Kotlin Multiplatform

  • 🆕 Улучшить удобство настройки среды для проектов KMM

  • 🆕 Улучшить DSL для управления выводом бинарных файлов Kotlin/Native

  • 🆕 Улучшить стабильность и надёжность инструментария многоплатформенной разработки

  • Улучшить UX использования нативных библиотек в Kotlin

  • ⏸ Улучшить удобство отладки Kotlin/Native

  • ⏸ Реализовать общий доступ к коду между JVM и Android

IDE

  • 🆕 Ускорить обновление версий компилятора/платформы

  • 🆕 Улучшить поддержку Multiplatform

  • 🆕 Стабилизировать плагин Eclipse

  • Прототипировать плагин IDE с новым компилятором frontend

  • Улучшить производительность IDE

  • Улучшить опыт отладки

  • Улучшить мастер создания нового проекта

  • ⏸ Реализовать расширенные инструменты, которые есть в Java, но отсутствуют в Kotlin

  • ⏸ Улучшить качество менее часто используемых функций

Инструменты сборки

  • 🆕 Предоставить лучший опыт работы с Kotlin Daemon

  • 🆕 Сделать kapt работающим "из коробки" с последними JDK

  • Улучшить производительность инкрементальной компиляции Gradle

  • Улучшить пользовательский опыт с плагином Kotlin Gradle

  • ⏸ Улучшить качество импорта Gradle

Библиотеки

  • 🆕 Выпустить Dokka как стабильную

  • 🆕 Запустить kotlinx-kover и продолжить его коммерциализацию

  • 🆕 Выпустить kotlinx-serialization 1.4

  • 🆕 Выпустить kotlinx-coroutines 1.7

  • Стабилизировать и документировать atomicfu

  • Улучшить библиотеку kotlinx-datetime

  • Поддержка расширения java.nio.Path в стандартной библиотеке

Веб-сайт

  • 🆕 Улучшить Kotlin Playground

  • 🆕 Предоставить инфраструктуру для локализации документации сообществом

  • Сделать веб-сайт Kotlin адаптированным под мобильные устройства

  • Сделать интерфейс и навигацию согласованными

  • Обновить графические активы сообщества до нового визуального стиля Kotlin

  • Этот дорожная карта не является исчерпывающим списком всего, над чем работает команда, а лишь перечень самых крупных проектов.

  • Нет никаких обязательств по предоставлению конкретных функций или исправлений в определенных версиях.

  • В списке указаны некоторые отложенные задачи, на которые команда не будет обращать внимания в ближайшее время.

  • Мы будем корректировать наши приоритеты по ходу дела и обновлять дорожную карту примерно раз в шесть месяцев.

Что изменилось с мая 2021 года

Выполненные пункты

Мы завершили следующие пункты из предыдущего плана:

  • ✅ Язык: Поддержка программной генерации экземпляров аннотационных классов

  • ✅ Язык: Стабилизация typeOf

  • ✅ Язык: Разрешение повторяющихся аннотаций с сохранением во время выполнения при компиляции под Java 8

  • ✅ Язык: Поддержка аннотаций на параметрах типа класса

  • ✅ Язык: Улучшение вывода типов в особых случаях для популярных Java API

  • ✅ Язык: Поддержка JVM-запечатанных классов

  • ✅ Ядро компилятора: Вывод типов на основе собственных верхних границ

  • ✅ Ядро компилятора: Работа над сервисами для взаимодействия нового компилятора с IDE

  • ✅ Kotlin/Native: Реализация безопасной инициализации для свойств верхнего уровня

  • ✅ Kotlin/Native: Прототипирование нового сборщика мусора

  • ✅ Multiplatform: Поддержка целевой платформы Apple Silicon в инструментах Kotlin Multiplatform

  • ✅ Multiplatform: Улучшение управления зависимостями для iOS

  • ✅ IDE: Перенос плагина Kotlin в инфраструктуру разработки IntelliJ

  • ✅ Инструменты сборки: Уменьшение времени открытия проектов Gradle

  • ✅ Библиотеки: Улучшение kotlinx-serialization (релиз 1.3.0)

  • ✅ Библиотеки: Улучшение kotlinx-coroutines (релиз 1.6.0)

  • ✅ Библиотеки: Стабилизация API Duration в стандартной библиотеке

  • ✅ Библиотеки: Удаление !! после readLine() в стандартной библиотеке

  • ✅ Библиотеки: Улучшение удобства использования библиотеки многопоточных сопроцедур для Kotlin/Native

  • ✅ Веб-сайт: Переработка документации Kotlin

Отложенные пункты

Мы решили отложить следующие пункты из предыдущего плана:

  • ⏸ Kotlin/Native: Поддержка сборки Kotlin/Native для Mac Catalyst (x86-64 и arm64)

  • ⏸ Kotlin/Native: Поддержка прямой взаимозаменяемости с Swift

  • ⏸ Kotlin/Native: Поддержка запуска бинарных файлов, созданных Kotlin/Native, на Alpine Linux

  • ⏸ Kotlin/JS: Улучшение поддержки Dukat

  • ⏸ Kotlin/JS: JS: поддержка ES6 в качестве целевой компиляции

  • ⏸ Multiplatform: Улучшение отладки Kotlin/Native

  • ⏸ Multiplatform: Реализация совместного использования кода между JVM и Android

  • ⏸ IDE: Реализация расширенных инструментов, которые есть у пользователей Java, но отсутствуют в Kotlin

  • ⏸ IDE: Улучшение качества реже используемых функций

  • ⏸ Инструменты сборки: Улучшение качества импорта Gradle

Другие отложенные пункты остаются в этом состоянии из предыдущих версий плана.

Новые пункты

Мы добавили следующие пункты в дорожную карту:

  • 🆕 Язык: Исследование и прототипирование решения на основе пространств имён для статики и статических расширений

  • 🆕 Язык: Рассмотреть поддержку встроенных sealed-классов

  • 🆕 Язык: Разрешить обозначаемые явно не-null типы

  • 🆕 Язык: Проектирование и реализация решения для метода toString на объектах

  • 🆕 Язык: Предоставить современную и производительную замену для Enum.values()

  • 🆕 Язык: Разрешить реализацию через делегирование во встроенное значение встроенного класса

  • 🆕 Ядро компилятора: Стабилизировать API плагина компилятора K2

  • 🆕 Ядро компилятора: Исследовать JS-бэкенд для компилятора K2

  • 🆕 Kotlin/JVM: Выпустить kotlinx-metadata-jvm как Стабильную

  • 🆕 Kotlin/JVM: Исправить проблемы, связанные со встроенными классами на JVM

  • 🆕 Kotlin/JVM: Разрешить приватные классы верхнего уровня или псевдонимы типов с одинаковым именем в разных файлах на JVM

  • 🆕 Kotlin/JVM: Предоставить возможность перечисления всех непосредственных подклассов sealed-класса во время компиляции без рефлексии

  • 🆕 Kotlin/JVM: Поддержка ссылок на методы конструкторов функциональных интерфейсов

  • 🆕 Kotlin/JVM: Поддержка синтетических ссылок на свойства Java

  • 🆕 Kotlin/Native: Поднять новый менеджер памяти до стадии Alpha

  • 🆕 Multiplatform: Улучшить опыт настройки окружения для проектов KMM

  • 🆕 Multiplatform: Улучшить DSL для управления двоичным выводом Kotlin/Native

  • 🆕 Multiplatform: Улучшить стабильность и надёжность многоплатформенной цепочки инструментов

  • 🆕 IDE: Ускорить обновление версий компилятора/платформы

  • 🆕 IDE: Улучшить поддержку Multiplatform

  • 🆕 IDE: Стабилизировать плагин Eclipse

  • 🆕 Инструменты сборки: Предоставить лучший опыт работы с Kotlin Daemon

  • 🆕 Инструменты сборки: Сделать kapt работающим "из коробки" с новейшими JDK

  • 🆕 Библиотеки: Выпустить Dokka как Стабильную

  • 🆕 Библиотеки: Запустить kotlinx-kover и продолжить его доработку

  • 🆕 Библиотеки: Выпустить kotlinx-serialization 1.4

  • 🆕 Библиотеки: Выпустить kotlinx-coroutines 1.7

  • 🆕 Веб-сайт: Улучшить Kotlin Playground

  • 🆕 Веб-сайт: Предоставить инфраструктуру для локализации документации сообществом

Удаленные пункты

Мы удалили следующие пункты из дорожной карты:

  • ❌ Kotlin/Native: Поддержка взаимодействия с C++

  • ❌ Multiplatform: Улучшить сообщения об ошибках Gradle и компилятора

  • ❌ Инструменты сборки: Улучшить поддержку Kotlin Maven

  • ❌ Библиотеки: Реализовать любые новые многоплатформенные библиотеки

  • ❌ Библиотеки: kotlinx-cli

  • ❌ Библиотеки: binary-compatibility-validator

  • ❌ Библиотеки: kotlinx-io

Пункты в процессе

Все другие ранее определенные пункты дорожной карты находятся в процессе выполнения. Вы можете проверить их билеты YouTrack для получения обновлений.

Последнее изменение: 07 апреля 2022
Выпуски плагина Kotlin Обзор коллекций

© 2010–2022 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/roadmap.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API