Kotlin 1.2 Выпущен С Кроссплатформенной Поддержкой


JetBrains только что объявила о выпуске Kotlin 1.2, и он уже поддерживается в Android Studio 3. Что нового и чего не хватает?

Kotlin стал важным языком с тех пор, как Google приняла его в качестве альтернативы Java в Android Studio. Это действительно упрощает программирование на Android, уменьшая потребность в длинных кусках шаблонного кода, которые средний программист просто не получает или, возможно, точнее, не утруждает себя пониманием на глубоком уровне. В физике есть старая поговорка, что вы никогда ничего по-настоящему не поймете, вы просто привыкнете к этому. Так же обстоит дело со многими аспектами написания Java. Возможно, вы когда-то и понимали это, но в наши дни вы просто позволяете IDE генерировать это для вас.

В Kotlin 1.2 появилась новая функция, которая в прошлом, возможно, вызвала у вас легкую зевоту. Другой язык, совместимый с Java, расширяет свой охват в областях, которыми не многие собираются пользоваться. Большая разница в том, что с Kotlin в качестве языка Android внезапно стоит рассмотреть его в других средах, хотя бы потому, что ваши навыки передаются.

Новая функция-мультиплатформенные проекты. На данный момент Kotlin поддерживает JVM, JavaScript и машинный код в качестве своих трех целей. В этой новой версии вы можете создавать проекты, которые могут выполняться на JVM или JavaScript. Существуют общие модули, которые работают на любой платформе, а затем модули платформы, которые специфичны для цели.

Это звучит не так уж удивительно, но умная часть заключается в том, что общие модули могут связываться с зависимыми от платформы модулями с помощью “ожидаемых и фактических объявлений”. Это позволяет одной и той же внутренней логике получать доступ к одним и тем же данным через разные интерфейсы. Например, если общий модуль имеет:

ожидайте веселья привет(мир: Строка): Строка

затем он может использовать функцию hello, но она будет поставляться одним из модулей платформы, например, на JVM:

фактическое веселье привет(мир: строка)

Это не идеальное решение, но оно прямое и простое для понимания, и JetBrains работает над общими библиотеками, которые можно использовать в общих модулях.

Хорошим улучшением является ускорение компилятора на 25% :

JetBrains обещает больше ускорений в обновлениях с десятичной запятой.

Языковые изменения незначительны на местах, и в основном это хорошо – стабильный язык важен, но списки объявлений: 

Более краткий синтаксис для передачи нескольких аргументов в аннотацию (литералы массива);

Поддержка модификатора lateinit для свойств верхнего уровня и локальных переменных, а также проверка инициализации переменной lateinit;

Более умные интеллектуальные приведения и улучшенный вывод типов в некоторых случаях;

Совместимость стандартной библиотеки с ограничениями разделения пакетов, введенными в Java 9;

Новый пакет kotlin.math в стандартной библиотеке;

Новые стандартные библиотечные функции для работы с последовательностями и коллекциями, включая набор функций для разбиения коллекции или последовательности на потенциально перекрывающиеся группы фиксированного размера.

Конечно, все это должно быть обратно совместимо. Некоторые улучшения, которые не были перечислены в объявлении, но о которых стоит знать,:

Теперь вы можете использовать значения по умолчанию для параметров во встроенных функциях.

Теперь вы можете использовать оператор ссылки с методами без необходимости использовать это, т. Е. Вы можете написать ::метод, а не этот::метод.

К сожалению, сопрограммы все еще являются экспериментальными, хотя они были введены в 1.1. Когда эта функция, в комплекте с async и await, войдет в финальную сборку, это будет иметь большое значение – в частности, для программ Android.

Объявление также дает представление о том, насколько хорошо работает Котлин:

Резкий рост произошел, когда Google объявила Kotlin языком Android.

Майк Джеймс является автором Руководства программистов по Kotlin (I/O Press), написанного для Java-программистов, разработчиков Android и программистов, желающих узнать, почему Kotlin лучше программирует на Java и Android в Kotlin: Начиная с приложения (I/O Press).


Добавить комментарий