В Kotlin корутины безстековые. На счет асимметричности не могу дать точного ответа, можно ли их так назвать.
Можете посмотреть подробнее в какой байткод они компилируются в этом посте
Чаще всего coroutines называют корутинами. Например сами JetBrains тут. Также, если посмотреть выступления того же Андрея Бреслава, то он тоже так их называет.
Как это сделать в Intellij Idea не знаю (хотя можно по идее плагином попробовать).
А вообще такую подсветку можно сделать в Sublime Text, и в нем открывать файл, полученный с помощью javap. Плагин для подсветки синтаксиса.
Ну на самом деле они у себя его вовсю используют. Код на Kotlin в продакшене начал использоваться еще с начала его создания (вроде 2011) и у них же проходил боевую обкатку. Сейчас полностью на Kotlin написан сервис авторизации. В Rider фронтенд также полностью написан на Kotlin. Как минимум еще тесты пишутся также на Kotlin. В своем новом проекте они также используют Kotlin.
Сам язык постепенно проникает в их проекты. Нет смысла все сразу переписывать на Kotlin, они для того и делали язык с осознанием того, чтобы он прекрасно дружил с большой кодовой базой на Java.
Если вы в таких местах используете Option, то у вас будет либо Some с объектом, либо None. В случае None вы так же теряете информацию о том что пошло не так. (в таких случае целесообразней использовать другой механизм, может тот же Either)
Там же где Option подходит, он заменяется успешно на nullable тип. (не везде, да бывают места где лучше оставить Option, но все же в большинстве случаев его можно заменить)
Но теряется возможность использовать монадический синтаксис и унифицированный код, работающий с разными типами коллекций
Просто один подход заменяется на другой. Да и для nullable типов в Kotlin есть специальные расширения для коллекций (типа filterNonNull и т.п.)
Да и я бы не сказал, что большое количество '?' делает код сильно проще.
Спорное утверждение, кому что ближе =)
Из своего опыта могу сказать что мне подход Kotlin ближе. К примеру код на Scala: fun1().flatMap( _.fun2).flatMap( _.fun3) заменяется на fun1()?.fun2()?.fun3()
Можно и без jackson-module-kotlin, только тогда чисто Kotlin специфичные вещи работать не будут, что вполне логично.
Вы серьезно? Основное, чем вы аргументируете свое заключение, это internal. Который и не так часто используется.
Можете посмотреть подробнее в какой байткод они компилируются в этом посте
did-you-know-you-can-multithread-in-javascript
Да, это не то же самое.
Тут, конечно, не дословный перевод, но думаю смысл не сильно искажается в данном случае.
Если перевести все один к одному то текст получится тяжелый.
Для больших коллекций при большом количестве chain преобразований думаю ленивый подход лучше себя покажет
Сама Scala уже давно появилась, если поискать то наверняка будет полно уже написанных постов. Как например этот пост.
А вообще такую подсветку можно сделать в Sublime Text, и в нем открывать файл, полученный с помощью javap.
Плагин для подсветки синтаксиса.
А по поводу этой статьи, она мягко говоря не очень удачная, вместе с картинкой сверху. Больше смахивает на троллинг перехода на Kotlin.
В Kotlin есть одно неоспоримое преимущество, с ним будет больше ежедневного «фана» (original: fun) чем в других языках =)
Сам язык постепенно проникает в их проекты. Нет смысла все сразу переписывать на Kotlin, они для того и делали язык с осознанием того, чтобы он прекрасно дружил с большой кодовой базой на Java.
Там же где Option подходит, он заменяется успешно на nullable тип. (не везде, да бывают места где лучше оставить Option, но все же в большинстве случаев его можно заменить)
Просто один подход заменяется на другой. Да и для nullable типов в Kotlin есть специальные расширения для коллекций (типа filterNonNull и т.п.)
Спорное утверждение, кому что ближе =)
Из своего опыта могу сказать что мне подход Kotlin ближе. К примеру код на Scala:
fun1().flatMap( _.fun2).flatMap( _.fun3)заменяется наfun1()?.fun2()?.fun3()