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

Основная проблема Java — её многословность. Проект очень быстро перестал «влазить» в голову, особенно по утрам. Обычно это означает, что пришло время рефакторинга и код придётся дробить, делать его похожим на «лютый энтерпрайз». Тоска. А так как проект делается для удовольствия, то я решил попробовать что‑нибудь новенькое и поменять язык разработки.

Что требовалось от языка:

  1. Полная совместимость с JVM.
  2. Возможность запускаться на Android.
  3. Компактный синтаксис.
  4. Простой перенос кода.

Кандидатов было два: Scala и Kotlin.

Преимущество Scala — коммьюнити. Оно большое. Также есть много ресурсов, где можно изучить язык, включая курсы на Coursera. Но вот синтаксис подкачал. У меня сложилось впечатление, что Scala пытается доказать, что я слишком слабый программист, чтобы программировать на ней.

Не сомневаюсь, что это лишь первое впечатление и, если потратить на неё чуть больше времени, всё будет совсем по‑другому. Но для утреннего проекта, пока мозг только просыпается, Scala — не лучший выбор.

С другой стороны, у Kotlin скромное коммьюнити. И практически отсутствуют ресурсы для изучения языка. Есть, правда, Коэны (они великолепны!). Понравился синтаксис и идеи, заложенные в языке. Есть инструмент для автоматической конвертации из Java в Kotlin. Сконвертировал свой проект на libGDX без проблем, хотя и с приключениями.

Писать на Kotlin получается быстрее и проще по сравнению с Java. Синтаксис намного более ёмкий. И, по ощущениям, язык больше приспособлен к экспериментам в коде.

Kotlin выполняет 3 из 4 требований. Не пробовал собираться под Android. Даже если тут меня ждёт облом, текущий проект я всё равно закончу на Kotlin. Я снова начал получать удовольствие от проекта.