- PVSM.RU - https://www.pvsm.ru -
Вчера компания JetBrains выпустила релиз Kotlin 1.2. Новая версия — большой шаг на пути к тому, чтобы сделать Kotlin наиболее удобным инструментом для разработки всех компонентов современного приложения.
В версии Kotlin 1.1 мы официально выпустили поддержку JavaScript — возможность транслировать код на Kotlin в JS и выполнять его в браузере. В этой версии мы добавляем к этому возможность переиспользования кода между JVM и JavaScript. Теперь вы можете использовать одну и ту же реализацию бизнес-логики во всех компонентах вашего приложения — бэкэнде, фронтэнде в браузере и мобильном приложении под Android. Мы также работаем над библиотеками, которые в этом помогают — в частности, над кросс-платформенной библиотекой для сериализации.
Kotlin 1.2 доступен из коробки в IntelliJ IDEA 2017.3 [1], которая также выходит на этой неделе. Если вы используете Android Studio или более старую версию IntelliJ IDEA, вы можете обновиться при помощи диалога Tools | Kotlin | Configure Kotlin Plugin Updates.
В этот релиз внесли большой вклад наши внешние контрибьюторы, и мы хотели бы поблагодарить всех, кто отправлял нам фидбэк и баг-репорты, а особенно — тех, кто присылал нам пулл-реквесты.
Мультиплатформенные проекты позволяют вам собрать все компоненты вашего приложения — бэкэнд, фронтэнд и Android-приложение — из общей базы кода. Такой проект состоит из общих модулей, которые содержат не зависящий от платформы код, а также платформенно-зависимых модулей, которые содержат код для конкретной платформы (JVM или JS) и могут использовать библиотеки этой платформы. Для того, чтобы вызывать платформенно-зависимый код из общего модуля, вы можете указывать ожидаемые (expect) декларации — декларации, для которых все платформенно-зависимые модули должны предоставить фактические (actual) реализации.
Более подробную информацию об использовании мультиплатформенных проектов можно найти в документации [2].
Как уже упоминалось, мы также работаем над библиотеками, которые помогают переносить код в общие модули:
Обратите внимание, что поддержка мультиплатформенных проектов выпущена в экспериментальном статусе. Это означает, что писать такие проекты можно уже сейчас, но в будущем у нас может возникнуть необходимость изменить её дизайн (если это случится, мы предоставим инструменты для миграции существующего кода).
В ходе работы над версией 1.2 мы вложили много усилий в то, чтобы сделать компиляцию быстрее. Мы уже достигли ускорения около 25% по сравнению с версией 1.1, и мы видим большой потенциал для дальнейших оптимизаций, которые мы планируем выпускать в обновлениях 1.2.x.
На графике показана разница во времени компиляции двух больших проектов в JetBrains, использующих Kotlin:
Новая версия также включает менее существенные улучшения в языке и стандартной библиотеке:
lateinit
для свойств верхнего уровня и локальных переменных, а также проверки того, было ли lateinit
-свойство инициализировано;kotlin.math
в стандартной библиотеке;Более полную информацию об изменениях в языке и стандарной библиотеке можно найти в документе What's new in Kotlin 1.2 [10].
Со времени релиза Kotlin 1.1 в марте этого года распространение его использования по всему миру сильно расширилось. Кульминацией стала KotlinConf [11], наша первая конференция, которую мы провели в Сан-Франциско 2-3 ноября, и на которую приехало около 1200 наших пользователей. Вы можете посмотреть записи всех докладов на сайте конференциии [12].
Kotlin также стал официально поддерживаемым языком для разработки под Android. Kotlin-плагин входит в комплект поставки Android Studio начиная с версии 3.0, а на сайте Android можно найти официальные примеры [13] и стайл-гайд [14]. Уже сейчас Kotlin используют более 17% проектов в Android Studio [15], в том числе многие приложения как самых ярких стартапов, так и компаний из списка Fortune 500.
На стороне сервера состоялся релиз Spring Framework 5.0 [16] с большим количеством фич по поддержке Kotlin [17], а vert.x [18] официально поддерживает Kotlin [19] начиная с релиза 3.4.0. Кроме того, поддержка билд-скриптов на Kotlin уже входит в комплект поставки Gradle, и проект Gradle Kotlin DSL [20] уже близок к релизу 1.0.
Количество строк кода в open-source репозиториях на GitHub превысило 25 миллионов. А на Stack Overflow Kotlin является одновременно одним из самых быстрорастущих и наименее нелюбимых языков [21].
Рост сообществ вокруг Kotlin также производит впечатление. По всему миру существует более 100 групп пользователей Kotlin, а докладов про Kotlin столько, что мы с трудом справляемся их все отслеживать — но для тех, про которые мы знаем, карта [22] даёт хорошее представление о том, насколько распространено использование Kotlin.
Для тех, кто только начинает использовать Kotlin, доступно всё больше книг (в том числе наша собственная “Kotlin in Action” [23], которая уже переведена на русский [24], японский [25], китайский [26] и португальский [27]), онлайн-курсов, самоучителей и других ресурсов [28].
Чтобы рассказать вам больше о новом релизе, мы проведём вебинар о разработке мультиплатформенных проектов при помощи Kotlin 1.2 [29] 7 декабря, в 8 вечера по Москве. Не забудьте зарегистироваться; количество участников ограничено!
Кроме того, наша команда проведёт AMA (Ask Me Anything, открытое интервью) на Kotlin Reddit [30] 5 декабря. Мы начнём в 2 часа дня по Москве и будем отвечать на ваши вопросы в течение суток.
Как всегда, попробовать Kotlin можно прямо в браузере, на сайте try.kotlinlang.org [31]
Совместимость: В Kotlin 1.2 язык и стандартная библиотека обратно совместимы (по модулю багов) [33]: код, который компилировался и работал в версиях 1.0 и 1.1, будет также работать в версии 1.2. Для того, чтобы большие команды могли переходить на новую версию постепенно, мы добавили опцию компилятора, которая отключает возможность использования новых фич языка и библиотеки. Информацию о возможных трудностях можно найти в документации [34].
Хорошего вам Kotlin!
Автор: yole
Источник [35]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/269443
Ссылки в тексте:
[1] IntelliJ IDEA 2017.3: https://www.jetbrains.com/idea/
[2] документации: http://kotlinlang.org/docs/reference/multiplatform.html
[3] kotlin.test: http://kotlinlang.org/api/latest/kotlin.test/index.html
[4] kotlinx.html: https://github.com/kotlin/kotlinx.html
[5] kotlinx.serialization: https://github.com/kotlin/kotlinx.serialization
[6] Компактный синтаксис: http://kotlinlang.org/docs/reference/whatsnew12.html#array-literals-in-annotations
[7] Более умные смарт-касты: http://kotlinlang.org/docs/reference/whatsnew12.html#smart-cast-improvements
[8] улучшение вывода типов: http://kotlinlang.org/docs/reference/whatsnew12.html#information-from-explicit-casts-is-used-for-type-inference
[9] набор функций: http://kotlinlang.org/docs/reference/whatsnew12.html#windowed-chunked-zipwithnext
[10] What's new in Kotlin 1.2: http://kotlinlang.org/docs/reference/whatsnew12.html
[11] KotlinConf: https://kotlinconf.com/
[12] сайте конференциии: https://kotlinconf.com/talks/
[13] официальные примеры: https://developer.android.com/samples/index.html?language=kotlin
[14] стайл-гайд: https://android.github.io/kotlin-guides/
[15] более 17% проектов в Android Studio: https://android-developers.googleblog.com/2017/11/update-on-kotlin-for-android.html
[16] Spring Framework 5.0: https://spring.io/blog/2017/09/28/spring-framework-5-0-goes-ga
[17] фич по поддержке Kotlin: https://docs.spring.io/spring/docs/current/spring-framework-reference/languages.html#kotlin
[18] vert.x: http://vertx.io/
[19] поддерживает Kotlin: http://vertx.io/docs/vertx-core/kotlin/
[20] Gradle Kotlin DSL: https://github.com/gradle/kotlin-dsl
[21] одним из самых быстрорастущих и наименее нелюбимых языков: https://stackoverflow.blog/2017/10/31/disliked-programming-languages/
[22] карта: http://kotlinlang.org/community/talks.html
[23] “Kotlin in Action”: https://manning.com/books/kotlin-in-action
[24] русский: https://dmkpress.com/catalog/computer/programming/java/978-5-97060-497-7/
[25] японский: https://www.amazon.co.jp/Kotlin%E3%82%A4%E3%83%B3%E3%83%BB%E3%82%A2%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3-Dmitry-Jemerov/dp/4839961743/ref=sr_1_2?ie=UTF8&qid=1511539431&sr=8-2&keywords=kotlin
[26] китайский: https://www.amazon.com/Kotlin%E5%AE%9E%E6%88%98-Svetlana-Isakova-Dmitry-Jemerov/dp/B07568C58F/ref=sr_1_3?s=books&ie=UTF8&qid=1511539582&sr=1-3
[27] португальский: https://novatec.com.br/livros/kotlin-em-acao/
[28] других ресурсов: http://kotlinlang.org/community/
[29] разработке мультиплатформенных проектов при помощи Kotlin 1.2: https://info.jetbrains.com/Kotlin-Webinar-December2017.html
[30] Kotlin Reddit: https://www.reddit.com/r/Kotlin/
[31] try.kotlinlang.org: http://try.kotlinlang.org/
[32] страницы релиза на GitHub: https://github.com/JetBrains/kotlin/releases/tag/v1.2.0
[33] обратно совместимы (по модулю багов): http://kotlinlang.org/docs/reference/compatibility.html
[34] документации: http://kotlinlang.org/docs/reference/compatibility.html#binary-compatibility-warnings
[35] Источник: https://habrahabr.ru/post/343500/
Нажмите здесь для печати.