Kotlin мой следующий JVM-язык
Опубликовано 19 October 2015 в Java
Утром, в дополнение к физическим упражнениям, я примерно час программирую. Для этого отлично подходят не очень сложные проекты, которые делаются в кайф. Для меня, это маленькие игры и приложения для Android. Первый подобный проект я написал на Java. Второй стартовал так же на Java. Но я решил его портировать на Kotlin.
Основная проблема Java - ее многословность. Проект очень быстро перестал "влазить" в голову, особенно по утрам. Обычно это означает, что пришло время рефакторинга и код придется дробить, делать его похожим на "лютый энтерпрайз". Тоска. А так как проект делается для удовольствия, то я решил попробовать что-нибудь новенькое и поменять язык разработки.
Что требовалось от языка:
- Полная совместимость с JVM
- Возможность запускаться на Android
- Компактный синтаксис
- Простой перенос кода
Кандидатов было два: Scala и Kotlin.
Преимущество Scala - коммьюнити. Оно большое. Так же есть много ресурсов где можно изучить язык, включая курсы на Coursera. Но вот синтаксис подкачал. У меня сложилось впечатление, что Scala пытается доказать, что я слишком слабый программист, что бы программировать на ней.
Не сомневаюсь, что это лишь первое впечатление и если потратить на нее чуть больше времени, все будет совсем по другому. Но для утреннего проекта, пока мозг только просыпается, Scala не лучший выбор.
С другой стороны у Kotlin скромное коммьюнити. И практически отсутствуют ресурсы для изучения языка. Есть, правда, Коэны (они великолепны!). Понравился синтаксис и идеи заложенные в языке. Есть инструмент для автоматической конвертации из Java в Kotlin. Сконвертировал свой проект на libGDX без проблем. Хотя и с приключениями.
Писать на Kotlin получается быстрее и проще по сравнению с Java. Синтаксис намного более емкий. И по ощущениям, язык больше приспособлен к экспериментам в коде.
3 из 4 требований Kotlin выполняет. Не пробовал собираться под Android. Даже если тут меня ждем облом, текущий проект я все-равно закончу на Kotlin. Я снова начал получать удовольствие от проекта.
Возник вопрос? Мне всегда можно написать в Twitter: avkorablev