Дайджест: Kotlin

Выход новой бета-версии — главное, но не единственное, на что сейчас можно обратить внимание в связи с Kotlin. Вот всё по порядку:

  • Kotlin 1.1 добрался до стадии бета-версии, и теперь финальный релиз тоже не за горами. Главные нововведения 1.1 — компиляция в JavaScript и корутины (о которых Андрей Бреслав, возглавляющий проект, рассказывал осенью на Joker). Из-за новизны и масштабности корутин они пока что в «экспериментальном» статусе и включаются как opt-in, но сильных потрясений не ожидается.
  • JetBrains недавно завели официальный подкаст Talking Kotlin, пока что вышел один выпуск, в котором Хади Харири разговаривает с тем же Бреславом. Андрей там рассуждает, например, о поиске баланса между активным развитием языка и обратной совместимостью: мол, молиться на совместимость — это крайность (до которой не доходит даже Java), ломать что-то можно, но осторожно и оценивая количество затронутых пользователей. Вот и в чейнджлоге 1.1 есть пункт «deprecation»!
  • Появился любопытный блог-пост «How “Effective Java” may have influenced the design of Kotlin». Поклонник Котлина, решив перечитать знаменитую книгу Джошуа Блоха, с удивлением заметил столько перекличек языка с её идеями, что решил подробно написать об этом. Впрочем, внимание к этим идеям и не скрывают: в официальной документации решение сделать классы по умолчанию финальными аргументировано именно отсылкой к «Effective Java».
  • То же решение сделать классы финальными привело к появлению другого нового текста «Open your class and methods in Kotlin». Автор пишет, что Kotlin «неудобно использовать с Java-библиотеками вроде Spring, Mockito и остальными использующими cglib»: нужно проставлять кучу «open», легко ошибиться. К счастью, продолжает он, с Kotlin 1.0.6 появился плагин all-open, позволяющий сделать это автоматически.

    В комментариях замечают, что вообще-то Mockito уже научился работать с финальными классами. И то правда: мы ещё в октябре писали, что там появилась такая возможность благодаря переходу от cglib к Byte Buddy, и что в Kotlin-среде эта возможность сразу нашла признание. С тех пор прошло три месяца, а автор текста всё ещё жаждет пооткрывать классы пачками. Вспоминаются недавние слова Uncle Bob о том, что в Kotlin люди будут рады открывать всё подряд, а не разбираться, что им точно необходимо открытым.

  • Кстати, и как там Uncle Bob после шумихи? Во-первых, написал ещё один текст, возразив всем «Нет, типы — это не тесты» (и получив новые отклики вроде «это дошло до трамповской степени абсурда»). Во-вторых, провёл-таки обещанный вебинар по TDD с использованием Kotlin — JetBrains обещают опубликовать запись на следующей неделе.
  • Напоследок — несерьёзная и нерегулярная рубрика «странные картинки». Мы обнаружили, что если смотреть на вступительное изображение голодным, непроизвольно читаешь его так:

    kotleta2

    1. Андрей Бреслав
      Возглавляет разработку языка Kotlin в компании JetBrains. Раньше преподавал в университете и в старшей школе; теперь вместо этого выступает на различных конференциях, рассказывая о своём проекте и о фундаментальных принципах, лежащих в основе профессии разработчика ПО. @abreslav