Мнение разработчика: «Стоп! Kotlin — это не только Android»
IT-рекрутеры и новички в разработке ассоциируют Kotlin почти только с мобильной платформой. Мы собрали несколько мнений, противоречащих сложившейся репутации языка.
Берлинский разработчик Жан-Мишель Файард недавно поделился на Medium мнением о назревшей проблеме: с тех пор как Kotlin включили в Android Studio, IT-рекрутеры и новички в разработке ассоциируют язык только с мобильной платформой. Kotlin имеет большую долю в Android-разработке, но в не меньшей степени пригоден для других задач, где применяются Java и JVM.
В мире Android растёт доля Kotlin. За счёт Kotlin мобильная платформа стала производительнее и развивается быстрее. Заманчиво провести параллель с миром iOS, где Swift заменяет Objective C. Apple продвигает Swift так же, как Google пиарит Kotlin. На Google I/O 2019 было объявлено, что Kotlin стал приоритетным в разработке под Android.
Но Kotlin разрабатывался для облегчения Java и JVM, а не только улучшения Android. Хотя Kotlin в связке с Android многие полюбили, прочие разработчики используют язык для других целей. Android – крупная платформа, но JVM в целом – ещё больше. Ниже показан опрос на сайте компании JetBrains. Ответившие используют язык преимущественно для JVM-задач.
Процитируем здесь отрывок из интервью с Андреем Бреславом, создателем языка программирования Kotlin:
Естественно, что его [Kotlin] особенно много на Android, но и на серверных платформах тоже немало. В последнее время очень много интереса к Kotlin/Native, к мультиплатформенным проектам — тому, что мы анонсировали на конференции KotlinConf в ноябре. Многие люди интересуются, пробуют и задают вопросы «бизнес-уровня»: «а как нам строить свою стратегию, исходя из того, что будет Kotlin/Native»? Это всё очень приятные индикаторы.
Cоответствие потребностям рынка. Почему Kotlin стал так успешен в мобильной разработке, если не предназначен для неё? Это классический пример сообразности продукта ожиданиям. Руководители Android активно искали новые решения, пока не наткнулись на Kotlin. Это случилось в начале 2015 года, когда Джейк Уортон в этом документе восхвалил преимущества Kotlin.
Последние 2-3 года совершенно нормально использовать Kotlin на JVM. Многие писавшие и на Java, и на Kotlin согласятся с таким утверждением:
О текущем положении Java высказался в своей публикации Роман Елизаров, руководитель группы по библиотекам Котлина:
Ландшафт разработки программного обеспечения меняется. Области, в которых Java когда-то произвела революцию, трансформируются. Десктопная разработка сужается до профессионального и корпоративного программного обеспечения, в то время как потребители массового рынка полагаются на мобильные и веб-приложения. Бэкенд меняется микро-сервисами. Тем не менее, в ближайшее время Java и её экосистема не станут неактуальными. Кроме того, огромное влияние Java на разработку программного обеспечения останется в языках, которые когда-нибудь в будущем станут доминировать в ландшафте.
Kotlin годится и для бэкенд-программирования. Kotlin имеет собственные нативные фреймворки для бэкенд-разработчиков, такие как ktor, http4k и т. д. Spring проделали большую работу с 2017 г. по внедрению Kotlin в свои продукты.
Kotlin – это отличное решение для разработки во многих традиционных Java-областях, хотя бы потому что в нём применяется десятилетний практический опыт экосистемы Java. Например, корутины – вам больше не нужно выбирать между чистым кодом и неблокирующим подходом.
Подводя итог. Заметен явный зазор между тем, как разработчиков на Kotlin представляют рекрутеры и тем, как они видят сами себя. Ниша применения языка гораздо шире, чем можно судить по вакансиям. Около половины Kotlin-программистов не занимаются Android. При этом они получают предложения от работодателей по направлению мобильной разработки, что вызывает только раздражение. Если вы ищете разработчика на Kotlin под Android – их не так много, как мобильных джавистов, которым можно помочь выучить новый язык.
Как вы используете Kotlin?
Если вы перешли на Kotlin после длительного опыта работы с другим языками, и вам есть о чём рассказать, напишите нам – мы бы хотели взять у вас интервью.