Kotlin создан для воплощения идей в код. Мы стараемся устранить все препятствия, стоящие на пути ваших идей, и сделать чтение и написание Kotlin простым и увлекательным. Чтобы сделать это возможным, нам нужна очень сложная инженерная система, состоящая из многих частей: синтаксис языка, фронтенд и бэкенд компилятора, IDE, инструменты сборки, библиотеки и все остальные инструменты. Чтобы поддерживать и развивать все эти компоненты, в нашей команде трудится около 110 человек. Все они одновременно работают над различными проектами и задачами. Если вы хотите быть в курсе всех этих проектов, можете ознакомиться с публичной дорожной картой Kotlin. Мы только что обновили ее, чтобы отразить наши планы на Kotlin 1.7.0 и далее! Если вы хотите получить краткий обзор происходящего, не вдаваясь в подробности, то можете ознакомиться с сутью того, над чем мы работаем, в этом посте блога, где описаны семь наиболее заметных моментов. Для тех, кто не хочет читать, мы подготовили видеоролик с этими основными моментами! Компилятор — это сердце Kotlin. Это мощный двигатель всего языка, который определяет все аспекты создания приложения, включая время отклика IDE, скорость сборки, размер бинарных файлов и эффективность. Именно поэтому мы активно инвестируем в компилятор Kotlin, в частности, создавая новый компилятор K2. В настоящее время наша команда сосредоточена на доведении фронтенда компилятора K2 до состояния Альфа. Фронтенд — это часть компилятора, которая отвечает за анализ кода и преобразование его в промежуточное представление, которое впоследствии обрабатывается бэкендами. Новый компилятор уже показывает отличные результаты! Он способен компилировать огромные рабочие проекты JVM, такие как сам Kotlin и IntelliJ IDEA. Для этих проектов скорость компиляции в среднем в два раза выше. Мы будем продолжать стабилизировать его, компилируя больше проектов и исправляя ошибки и проблемы производительности. Планируется, что публичная предварительная версия компилятора K2/JVM будет запущена к весне 2022 года. Альфа-версия обеспечит превью новой инфраструктуры плагинов, которая позволит сообществу создавать больше инструментов. Мы также инвестируем в поддержку бэкендов, отличных от JVM, что позволит создавать многоплатформенные проекты с помощью компилятора K2. Исследуйте тикеты дорожной карты: Выпустить компилятор K2/JVM в альфа-версии Стабилизировать API плагина компилятора Исследовать JS-бэкенд для компилятора K2 KMM переходит в бета-версию весной 2022 года! Это означает, что сейчас мы сосредоточены на поиске и устранении как можно большего количества проблем, которые прерывают рабочие процессы пользователей. Это включает подсветку кода, навигацию и завершение, отладку и стабильность инструментария сборки. Мы также продолжим улучшать возможности параллелизма. Нами только что был выпущен экспериментальный менеджер памяти Kotlin/Native. Он сглаживает различия между JVM и Native платформами и упрощает написание общего, параллельного кода для платформ iOS и Android. В дальнейшие планы входит повышение стабильности и производительности, чтобы облегчить будущий переход на новый менеджер памяти. Изучите тикеты дорожной карты: Повышение стабильности и надежности многоплатформенного инструментария Перевести новый менеджер памяти на уровень Альфа Kotlin развивается быстро. Ознакомьтесь с нашей публичной дорожной картой, чтобы получить полное представление обо всех функциях, на которых мы сейчас сосредоточены. В Kotlin расширение класса возможно только в том случае, если соответствующий класс объявляет объект-компаньон. Это влечет за собой множество нежелательных последствий, таких как невозможность расширения многих классов сторонних библиотек и неэффективность при объявлении приватных статических членов класса. Мы планируем создать прототип решения, основанного на введении новой концепции пространства имен - своего рода эфемерного объекта без инстанса, которым автоматически обладает каждый класс. Члены пространства имен естественным образом компилируются в статические члены на JVM. Это сохраняет статические хелперы сгруппированными вместе в источнике, но удаляет все оверхеды, связанные с объектами. Это должно значительно улучшить взаимодействие Kotlin со статическими методами Java и позволит расширять любые типы Java. В результате это должно способствовать дальнейшему внедрению Kotlin/JVM. Изучите тикеты дорожной карты: Исследование и прототип решения на основе пространства имен для статических методов и статических расширений Мы считаем, что наличие надежного, специфичного для Kotlin решения для сбора тестового покрытия приложений и библиотек Kotlin необходимо для роста нашей экосистемы. Именно поэтому мы представили Kover, плагин Gradle, который измеряет покрытие кода для Kotlin и работает со всеми конструкциями языка, включая встроенные функции. Среди наших долгосрочных планов — DSL для правил проверки, стабилизация использования JaCoCo, расширенная фильтрация и поддержка Android. Мы планируем развивать Kover, основываясь на ваших отзывах, поэтому попробуйте его и поделитесь с нами своими отзывами! Изучите тикеты дорожной карты: Запуск kotlinx-kover и его дальнейшая продуктизация Еще один инструмент для разработчиков библиотек, над которым ведется работа - это Dokka, инструмент генерации документации. Мы продвигаем его в Бета с версией 1.6.0 и при этом делаем упор на удобство использования и унификацию дизайна с официальной документацией Kotlin. Наша цель — обеспечить разработчикам возможность беспрепятственно работать с документацией Kotlin, независимо от того, является ли она официальным справочником по языку или документацией по библиотекам. Использование единого визуального стиля и структуры помогает снизить затраты на переключение контекста. Следующим шагом будет перевод Dokka в статус Stable с единственным стабильным форматом вывода — HTML. Другие форматы вывода, такие как GitHub Markdown или Jekyll, API для разработчиков плагинов и поддержка Java останутся в альфа версии. Чтобы продвинуть их дальше, мы проведем серию интервью и ждем ваших отзывов! Изучите тикеты дорожной карты: Выпустить Dokka как стабильную версию Подсказка: Хотите принять участие в UX-исследованиях? Присоединяйтесь! Перемещение плагина Kotlin IDE в инфраструктуру разработки платформы IntelliJ было сложной инженерной задачей, которая позволила нам обеспечить поддержку новой функциональности инструментария вместе с платформой IntelliJ. Однако есть и некоторые недостатки. Например, если вы являетесь пользователем EAP, то могли заметить, что выпуски IntelliJ IDEA EAP не поддерживают предварительные версии предстоящих релизов Kotlin. Мы планируем улучшить нашу внутреннюю инфраструктуру, чтобы решить эту и другие проблемы с адаптацией релизов плагинов Kotlin IDE. Изучите тикеты дорожной карты: Сделать обновление версий компилятора/платформы более быстрым Случалось ли вам на вечеринке оказаться в ситуации, когда вы хотели показать своим друзьям какую-то совершенно новую функцию Kotlin и вдруг поняли, что не взяли с собой ноутбук? Для этого и многих других случаев, таких как изучение языка, создание прототипов и обмен знаниями, у нас есть Kotlin Playground. Поскольку Kotlin Playground стал так популярен среди пользователей, мы хотим предоставить еще больше возможностей! Если вы начинающий пользователь, то планируется упростить работу с ним, добавив больше примеров и подсказок. Для опытных пользователей мы предоставим возможность синхронизировать прогресс между устройствами, открывать несколько вкладок, экспортировать файлы и многое другое. Кроме того, сделаем Kotlin Playground дружественным к мобильным устройствам, чтобы вечеринка не была испорчена, если вы забудете свой ноутбук! Изучите тикеты дорожной карты: Улучшить Kotlin Playground Материал подготовлен в рамках курса «Kotlin Developer. Basic».  Всех желающих приглашаем на бесплатное demo-занятие «Kotlin Crash Course». На занятии мы кратко рассмотрим основные структуры и фичи языка Kotlin, которые широко используются при создании различных приложений, и из-за которого его все так любят: переменные и операции, циклы, функции, лямбда-функции, классы, дата-классы, расширения и еще много другого!>> РЕГИСТРАЦИЯ Редактор