На днях вышел Kotlin 1.3 с комплектом сопутствующих библиотек, инструментов сборки и учебных материалов.
Мы делаем Kotlin как инструмент для разработки приложений любого масштаба на любых платформах. В Kotlin 1.3, благодаря корутинам, читать и писать неблокирующий асинхронный код стало легко и удобно. Масштабируемость стала гораздо доступнее. В новом релизе мы также выпустили бета-версию Kotlin/Native, позволяющую компилировать код Kotlin непосредственно в машинный код. Мультиплатформенные возможности Kotlin теперь работают на всех поддерживаемых платформах, что позволяет, например, использовать одну и ту же бизнес-логику в приложениях для Android и iOS. Общую логику можно также использовать для серверов и мобильных и веб-клиентов. Кроме того, появилась возможность писать легко переносимые мультиплатформенные библиотеки, которые возьмут на себя большинство повседневных задач.
В ближайшее время мы проведем серию вебинаров по основным возможностям версии 1.3, записывайтесь здесь.
Сообщество и экосистема
В этом году экосистема Kotlin росла беспрецедентными темпами. С января 2018 года код на Kotlin редактировали приблизительно 1,5 миллиона пользователей — по сравнению с прошлым годом их число более чем удвоилось. База знаний на StackOverflow и в нашем публичном Slack тоже растет впечатляющими темпами. И мы очень рады, что сообщество Kotlin такое отзывчивое и доброжелательное.
Нам нравится, как растет и развивается экосистема, сложившаяся вокруг Kotlin. Kotlin дружит с Google Cloud Platform, Spring Framework и Gradle, не говоря уже об официальной поддержке на платформе Android. Сообщество open source создает превосходные библиотеки, такие как RxKotlin, mockito-kotlin, TornadoFX, Kodein и ΛRROW. Уже переходят на Kotlin или планируют миграцию такие проекты, как Square's Okio и LibreOffice. Приглашаем всех присоединяться к экосистеме Kotlin со своими идеями и проектами.
В Kotlin 1.3 внесли свой вклад не только сотрудники JetBrains, но и многие другие люди, которые создавали пулл-реквесты, баг-репорты и поддерживали с нами всяческую обратную связь. Мы очень ценим вашу помощь в развитии Kotlin!
Корутины официально стабильны
Корутины — это современный способ написания неблокирующего асинхронного кода, который легко понимать и удобно дорабатывать. Этот мощный инструмент можно использовать в самых разных целях — от перекладывания вычислительной нагрузки на фоновые исполнители (worker) до реализации сложных сетевых протоколов. Библиотека kotlinx.coroutines, версия 1.0 которой вошла в этот релиз, представляет собой прочный фундамент для управления асинхронными задачами в любом масштабе, включая их составление, отмену, обработку исключений и случаи, связанные с пользовательским интерфейсом.
Начните уже сегодня на kotl.in/coroutines!
Kotlin/Native Beta
Kotlin/Native использует LLVM для компиляции исходных кодов на Kotlin в самостоятельные двоичные файлы (виртуальная машина не нужна) для разнообразных операционных платформ и процессорных архитектур, включая iOS, Linux, Windows, Mac и даже WebAssembly и встраиваемые системы, такие как STM32. Kotlin/Native поддерживает полностью автоматическое управление памятью, обеспечивает взаимодействие с C и Objective-C (и Swift) и позволяет работать с API платформ, такими как Core Foundation или POSIX, и любыми нативными библиотеками, которые могут понадобиться разработчику.
Среда выполнения Kotlin/Native поощряет использование неизменяемых данных и запрещает любые попытки передачи незащищенного изменяемого состояния между потоками. На самом деле с точки зрения Kotlin/Native потоков не существует, они абстрагированы в качестве низкоуровневого аспекта реализации и заменены исполнителями (worker) — это безопасный и удобный способ реализации параллелизма.
Познакомиться с Kotlin/Native можно по адресу kotl.in/native.
Мультиплатформенные проекты и инструменты
Перед Kotlin в явном виде поставлена задача работать на всех платформах, однако мы рассматриваем ее как предпосылку к более важной цели — использованию одного и того же кода на разных платформах. Поддержка JVM, Android, JavaScript и Native позволяет Kotlin работать с любыми компонентами современных приложений. А это дает бесценную возможность переиспользования кода и имеющихся наработок — ведь куда лучше сосредоточиться на решении действительно сложных задач, а не на реализации того же самого кода по два раза и больше. Хотя мультиплатформенные возможности в Kotlin остаются экспериментальными, версия 1.3 — это большой шаг вперед.
Вместе с Kotlin 1.3 поставляется комплект мультиплатформенных библиотек для всех повседневных задач, например: HTTP, сериализация и управление корутинами. Использование подобных библиотек — самый простой способ писать мультиплатформенный код. Кроме того, вы можете создавать и собственные мультиплатформенные библиотеки, абстрагирующие особенности определенных платформ в едином API.
Начните переиспользовать код на разных платформах уже сегодня: kotl.in/multiplatform.
Инструменты для Kotlin/Native и Multiplatform
В Kotlin 1.3 доступны инструменты разработки Kotlin/Native и мультиплатформенных проектов в средах разработки IntelliJ IDEA Community Edition, IntelliJ IDEA Ultimate и Android Studio. Во всех трех IDE можно использовать всю функциональность редактирования кода — подсветку ошибок, комплишен, навигацию и рефакторинг. В будущем мы займемся реализацией более сложных возможностей и интеграцией с коммерческими инструментами.
Ktor 1.0 Beta
Ktor — наш фреймворк для взаимосвязанных приложений, реализующий весь стек HTTP с полной асинхронностью на основе корутин, — уже в бета-версии и доступен по адресу ktor.io.
Другие улучшения
Кроме всего вышеупомянутого в этом релизе появился целый ряд других возможностей и улучшений:
- Экспериментальная поддержка inline-классов для повышения производительности и типобезопасности.
- Экспериментальная поддержка целых чисел без знака для более удобного манипулирования байтами и других низкоуровневых операций.
- Указание на субъект в выражениях when для уменьшения количества дублированного кода.
- Контракты для улучшения статического анализа библиотечных вызовов.
- Точка входа без аргументов для удобства начинающих разработчиков.
- Отладчик последовательностей для визуализации ленивых вычислений.
- Скретч-файлы, REPL и улучшения скриптинга для облегчения работы со скриптами и фрагментами кода.
- В стандартной библиотеке, помимо прочих улучшений и баг-фиксов, появилась поддержка Kotlin/Native, улучшена поддержка Kotlin/JS, а Random заработал на всех платформах.
- Экспериментальная поддержка инкрементной компиляции для Kotlin/JS.
Полное описание всех нововведений можно прочитать здесь (на английском языке). Также вы можете ознакомиться с журналом изменений и с руководством по совместимости.
KotlinConf
Мы опубликовали все видео с конференции KotlinConf 2018, на которой обсуждались главные темы Kotlin 1.3. Посмотрите вступительный кейноут, чтобы подробнее разобраться во всем самом новом и важном:
Записи всех семинаров с KotlinConf 2018 доступны на JetBrains TV.
Изучение Kotlin
Мы очень стараемся сделать изучение Kotlin легким и приятным. Для этого существует много ресурсов, среди которых мы хотели бы выделить следующие:
- На Coursera стартовал новый курс Светланы Исаковой и Андрея Бреслава.
- Книга Брюса Эккеля и Светланы Исаковой «Atomic Kotlin» уже в раннем доступе.
- В новой мини-веб-IDE play.kotl.in есть коаны, примеры и возможность создавать встраиваемые фрагменты кода.
- Плагин EduTools помогает изучать Kotlin прямо в IDE.
- Различные организации предоставляют сертифицированное обучение Kotlin в разных странах мира.
Для программистов всех уровней отличным отправным пунктом послужат вебинары по Kotlin 1.3.
Как обновиться
Как и всегда, вы можете попробовать Kotlin онлайн по адресу play.kotl.in.
- Maven, Gradle и npm: используйте номер версии 1.3.0 для компилятора и стандартной библиотеки. Документация здесь.
- IntelliJ IDEA: Kotlin 1.3 будет включен в версию 2018.3, а в более ранних выпусках достаточно установить или обновить плагин Kotlin до версии 1.3.
- Android Studio: установить или удалить плагин можно с помощью Plugin Manager.
- Eclipse: плагин можно установить через Marketplace.
- Компилятор для командой строки можно загрузить на странице выпуска в Github.
Let’s Kotlin!
Ваша команда JetBrains
The Drive to Develop
Автор: advertka