- PVSM.RU - https://www.pvsm.ru -

Kotlin 1.3 с поддержкой корутин, бета-версией Kotlin-Native и не только

На днях вышел Kotlin 1.3 с комплектом сопутствующих библиотек, инструментов сборки и учебных материалов.

Мы делаем Kotlin как инструмент для разработки приложений любого масштаба на любых платформах. В Kotlin 1.3, благодаря корутинам, читать и писать неблокирующий асинхронный код стало легко и удобно. Масштабируемость стала гораздо доступнее. В новом релизе мы также выпустили бета-версию Kotlin/Native, позволяющую компилировать код Kotlin непосредственно в машинный код. Мультиплатформенные возможности Kotlin теперь работают на всех поддерживаемых платформах, что позволяет, например, использовать одну и ту же бизнес-логику в приложениях для Android и iOS. Общую логику можно также использовать для серверов и мобильных и веб-клиентов. Кроме того, появилась возможность писать легко переносимые мультиплатформенные библиотеки, которые возьмут на себя большинство повседневных задач.

image

В ближайшее время мы проведем серию вебинаров по основным возможностям версии 1.3, записывайтесь здесь [1].

Сообщество и экосистема

В этом году экосистема Kotlin росла беспрецедентными темпами. С января 2018 года код на Kotlin редактировали приблизительно 1,5 миллиона пользователей — по сравнению с прошлым годом их число более чем удвоилось. База знаний на StackOverflow и в нашем публичном Slack тоже растет впечатляющими темпами. И мы очень рады, что сообщество Kotlin такое отзывчивое и доброжелательное.

Нам нравится, как растет и развивается экосистема, сложившаяся вокруг Kotlin. Kotlin дружит с Google Cloud Platform [2], Spring Framework [3] и Gradle [4], не говоря уже об официальной поддержке на платформе Android [5]. Сообщество open source создает превосходные библиотеки, такие как RxKotlin [6], mockito-kotlin [7], TornadoFX [8], Kodein [9] и ΛRROW [10]. Уже переходят на Kotlin или планируют миграцию такие проекты, как Square's Okio [11] и LibreOffice [12]. Приглашаем всех присоединяться к экосистеме Kotlin со своими идеями и проектами.

В Kotlin 1.3 внесли свой вклад не только сотрудники JetBrains, но и многие другие люди, которые создавали пулл-реквесты, баг-репорты и поддерживали с нами всяческую обратную связь. Мы очень ценим вашу помощь в развитии Kotlin!

Корутины официально стабильны

Корутины — это современный способ написания неблокирующего асинхронного кода, который легко понимать и удобно дорабатывать. Этот мощный инструмент можно использовать в самых разных целях — от перекладывания вычислительной нагрузки на фоновые исполнители (worker) до реализации сложных сетевых протоколов. Библиотека kotlinx.coroutines, версия 1.0 которой вошла в этот релиз, представляет собой прочный фундамент для управления асинхронными задачами в любом масштабе, включая их составление, отмену, обработку исключений и случаи, связанные с пользовательским интерфейсом.

Начните уже сегодня на kotl.in/coroutines [13]!

Kotlin/Native Beta

Kotlin/Native использует LLVM [14] для компиляции исходных кодов на 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 [15].

Мультиплатформенные проекты и инструменты

Перед Kotlin в явном виде поставлена задача работать на всех платформах, однако мы рассматриваем ее как предпосылку к более важной цели — использованию одного и того же кода на разных платформах. Поддержка JVM, Android, JavaScript и Native позволяет Kotlin работать с любыми компонентами современных приложений. А это дает бесценную возможность переиспользования кода и имеющихся наработок — ведь куда лучше сосредоточиться на решении действительно сложных задач, а не на реализации того же самого кода по два раза и больше. Хотя мультиплатформенные возможности в Kotlin остаются экспериментальными, версия 1.3 — это большой шаг вперед.

Вместе с Kotlin 1.3 поставляется комплект мультиплатформенных библиотек для всех повседневных задач, например: HTTP [16], сериализация [17] и управление корутинами [18]. Использование подобных библиотек — самый простой способ писать мультиплатформенный код. Кроме того, вы можете создавать и собственные мультиплатформенные библиотеки, абстрагирующие особенности определенных платформ в едином API.

Начните переиспользовать код на разных платформах уже сегодня: kotl.in/multiplatform [19].

Инструменты для 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 [20].

Другие улучшения

Кроме всего вышеупомянутого в этом релизе появился целый ряд других возможностей и улучшений:

Полное описание всех нововведений можно прочитать здесь [29] (на английском языке). Также вы можете ознакомиться с журналом изменений [30] и с руководством по совместимости [31].

KotlinConf

Мы опубликовали все видео с конференции KotlinConf 2018, на которой обсуждались главные темы Kotlin 1.3. Посмотрите вступительный кейноут, чтобы подробнее разобраться во всем самом новом и важном:

Записи всех семинаров с KotlinConf 2018 доступны на JetBrains TV [32].

Изучение Kotlin

Мы очень стараемся сделать изучение Kotlin легким и приятным. Для этого существует много ресурсов [33], среди которых мы хотели бы выделить следующие:

Для программистов всех уровней отличным отправным пунктом послужат вебинары по Kotlin 1.3 [1].

Как обновиться

Как и всегда, вы можете попробовать Kotlin онлайн по адресу play.kotl.in.

  • Maven, Gradle и npm: используйте номер версии 1.3.0 для компилятора и стандартной библиотеки. Документация здесь [38].
  • IntelliJ IDEA: Kotlin 1.3 будет включен в версию 2018.3, а в более ранних выпусках достаточно установить или обновить плагин Kotlin до версии 1.3.
  • Android Studio: установить или удалить плагин можно с помощью Plugin Manager.
  • Eclipse: плагин можно установить через Marketplace [39].
  • Компилятор для командой строки можно загрузить на странице выпуска в Github [40].

Let’s Kotlin!

Ваша команда JetBrains
The Drive to Develop

Автор: advertka

Источник [41]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/programmirovanie/297631

Ссылки в тексте:

[1] здесь: https://info.jetbrains.com/kotlin-webinars-general-subscription.html

[2] Google Cloud Platform: https://cloud.google.com/kotlin

[3] Spring Framework: https://spring.io/guides/tutorials/spring-boot-kotlin/

[4] Gradle: https://gradle.org/kotlin

[5] официальной поддержке на платформе Android: https://developer.android.com/kotlin/

[6] RxKotlin: https://github.com/ReactiveX/RxKotlin

[7] mockito-kotlin: https://github.com/nhaarman/mockito-kotlin

[8] TornadoFX: https://tornadofx.io/

[9] Kodein: http://kodein.org/Kodein-DI/

[10] ΛRROW: https://github.com/arrow-kt/arrow

[11] Square's Okio: https://github.com/square/okio

[12] LibreOffice: https://blog.documentfoundation.org/blog/2018/09/22/libreoffice-at-droidcon-vienna/

[13] kotl.in/coroutines: http://kotl.in/coroutines

[14] LLVM: https://llvm.org/

[15] kotl.in/native: http://kotl.in/native

[16] HTTP: http://ktor.io/clients/http-client/multiplatform.html

[17] сериализация: https://github.com/Kotlin/kotlinx.serialization

[18] управление корутинами: https://github.com/Kotlin/kotlinx.coroutines

[19] kotl.in/multiplatform: http://kotl.in/multiplatform

[20] ktor.io: http://ktor.io

[21] inline-классов: https://kotlinlang.org/docs/reference/whatsnew13.html#inline-classes

[22] целых чисел без знака: https://kotlinlang.org/docs/reference/whatsnew13.html#unsigned-integers

[23] Указание на субъект в выражениях when: https://kotlinlang.org/docs/reference/whatsnew13.html#capturing-when-subject-in-a-variable

[24] Контракты: https://kotlinlang.org/docs/reference/whatsnew13.html#contracts

[25] Точка входа без аргументов: https://kotlinlang.org/docs/reference/whatsnew13.html#parameterless-main

[26] Отладчик последовательностей: https://plugins.jetbrains.com/plugin/10301-kotlin-sequence-debugger

[27] улучшения скриптинга: https://kotlinlang.org/docs/reference/whatsnew13.html#scripting-update

[28] стандартной библиотеке: https://kotlinlang.org/api/latest/jvm/stdlib/index.html

[29] здесь: https://kotl.in/1.3

[30] журналом изменений: https://github.com/JetBrains/kotlin/blob/1.3.0/ChangeLog.md

[31] руководством по совместимости: http://kotlinlang.org/docs/reference/compatibility-guide-13.html

[32] JetBrains TV: https://www.youtube.com/playlist?list=PLQ176FUIyIUbVvFMqDc2jhxS-t562uytr

[33] много ресурсов: http://kotl.in/learn

[34] новый курс Светланы Исаковой и Андрея Бреслава: https://www.coursera.org/learn/kotlin-for-java-developers

[35] раннем доступе: https://www.atomickotlin.com/earlyaccess/

[36] EduTools: https://kotlinlang.org/docs/tutorials/edu-tools-learner.html

[37] сертифицированное обучение Kotlin: https://www.jetbrains.com/company/partners/kotlin/

[38] здесь: http://kotlinlang.org/docs/reference/using-gradle.html

[39] Marketplace: https://marketplace.eclipse.org/content/kotlin-plugin-eclipse

[40] странице выпуска в Github: https://github.com/JetBrains/kotlin/releases/tag/v1.3.0

[41] Источник: https://habr.com/post/428291/?utm_campaign=428291