Kotlin – статически типизированный язык, разработанный JetBrains для JVM, Android и веб-разработки. Согласно опубликованной дорожной карте платформы, язык должен получить новый компилятор, мультиплатформенные мобильные улучшения и серверную часть компилятора Kotlin-to-WebAssembly.
Приоритеты
Стратегический импульс язык получил в 2017 году, когда Google поддержал его в качестве предпочтительного языка для создания мобильных приложений Android, наряду с Java и C++. Обнародованная 5 октября дорожная карта описывает обновленные приоритеты для языка.
Новый компилятор, который отмечен в дорожной карте как ключевой приоритет, сделает упор на скорость, параллелизм, унификацию и расширения сфер применения языка. Также планируется, чтобы новый компилятор компилировался сам. Текущий по-прежнему поддерживаться для исправления ошибок.
Дорожная карта касается основных областей, над которыми работает команда, без обязательств по предоставлению функций или исправлений в конкретных версиях. План рассчитан на шесть месяцев и будет обновляться каждые три месяца.
Другой приоритет – Kotlin Multiplatform Mobile (KMM). Это SDK, который позволяет использовать один и тот же код бизнес-логики в приложениях iOS и Android. Обновление KMM предполагает улучшение взаимодействия с пользователем и набор функций для совместного использования кода на мобильных платформах.
Другие приоритеты, указанные в дорожной карте:
- расширение поддержки вариантов использования на стороне сервера JVM в экосистеме Kotlin;
- ускорение выполнения цикла изменения-тестирования-отладки;
- повышение производительности и стабильности Kotlin IDE.
Подсистемы
В дорожной карте также есть раздел, посвященный подсистемам, со ссылкой на самые крупные проекты, над которыми ведется работа:
- создание прототипа компилятора для предложения Wasm GC, обеспечивающего серверную часть компилятора Kotlin-to-WebAssembly. Поддержка Wasm в Kotli/Native через LLVM будет удалена;
- прототип нового сборщика мусора для Kotlin/Native, – будет улучшен экспорт Kotlin/Native кода в Objective-C;
- языковая поддержка для записей и закрытых классов JVM;
- выпуск стабильных и имеющих безопасную совместимость с Valhalla встроенных классов. Проект Valhalla предназначен для изучения языковых возможностей и возможностей виртуальной машины Java;
- прототип решения проблемы с несколькими приемниками;
- стабилизация нового внутреннего интерфейса JVM IR. JVM IR является частью нового компилятора;
- стабилизация новой внутренней части JS IR для Kotlin/JS;
- работа над улучшением поддержки Dukat, который позволяет автоматически преобразовывать файлы объявлений TypeScript;
- улучшенное управление зависимостями для iOS.