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

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

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

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

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

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

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

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

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

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



c