Support us

«Кому это нужно, когда есть православная Java?» Почему компании (не) переходят на Kotlin

21 комментарий
«Кому это нужно, когда есть православная Java?» Почему компании (не) переходят на Kotlin

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

«Возможно, ещё раз попробуем, но только не знаю, когда»

Участник Belarus Kotlin User Group и идейный вдохновитель School.kt Кирилл Розов говорит: 

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

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

Кирилл отмечает, что хуже всего компании переходят на Kotlin в бэкэнд-разработке: «уж очень она неповоротлива».

Руководитель юнита в PandaDoc Сергей Плевко говорит, что изначально в их компании бэкенд делали на Python, затем два года назад «было принято решение внести какое-то разнообразие — пусть будет ещё и Java».

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

Это ведь реальный опыт: не просто в книжках почитать, а самим сделать что-то. При этом мы не ставили перед собой цель проверить, а «если всё будет классно — то и перейти». Мы стартанули сервис весной прошлого года. Это была чисто бэкэнд-разработка. 

Что было здорово.

  1. Начать писать на Kotlin джависту довольно легко. Открыл мануал, прочитал три-пять страниц, и можно делать.
  2. Пришлась по душе идея с конвертацией целых классов на Java в Kotlin-код. 

Что было не очень хорошо.

  1. В Java практически не встречается багов, так работает среда разработки, а на Kotlin постоянно возникали какие-то мелкие нестыковки. Они фиксились быстро, за час можно было разобраться, в чём проблема. Но тратить целый час на что-то, что не касается твоей непосредственной работы, — согласитесь, неприятно. 
  2. Сам процесс работы со средой немного подтормаживает. Но если на Java он не раздражает, то на Kotlin процессор постоянно грузится и грузится — и ты почему-то наполняешься негативом: «Ну что так медленно!» Хотя, возможно, это связано с нашим проектом и с какими-то нашими библиотеками. 

В целом мы завершили проект, сейчас периодически что-то по нему доделываем. Но так и не нашли никаких плюсов, почему Kotlin следует использовать и дальше. Да, это интересно. Да, это что-то новое. Но никаких существенных плюсов. Идея избавления от нулпоинтеров лично мне не очень понятна — это какая-то борьба с ветряными мельницами. И я бы не сказал, что проблема стоит так остро, что её нужно прямо «решать-решать». А работа со сторонними библиотеками, наоборот, иногда добавляет лишнего геморроя — ты начинаешь «изголяться», чтобы обойти все ограничения Kotlin.

Это был интересный эксперимент, но мы поняли, что плюсов в том, чтобы писать бэкэнд на Kotlin, особо нет, а разрабатывать не так удобно, как на Java. Я иногда предлагаю: давайте возьмём другой проект, переосмыслим весь наш опыт и сделаем по-другому — проведём ещё один эксперимент. Но пока никто не загорелся этой идеей. Возможно, когда-нибудь мы ещё раз попробуем, но только не знаю, когда. 

И ещё: когда я впервые закинул эту идею внутри команды, её поддержали, руководство сказало: «На твой страх и риск». Но если бы сейчас ко мне пришёл, например, заказчик и попросил: «Хочу на Kotlin», я бы предложил ему сначала взвесить все «за» и «против». Потому что писать сервис на Kotlin, просто ради того, чтобы писать на Kotlin — это так себе идея. 

Я также предупредил бы его, что добавление мультиязычности в целом усложняет систему, поэтому оно должно быть оправдано. С точки зрения бизнеса в том числе. 

По теме
Все материалы по теме

«Компаниям не интересны новые языки. Инициатива идёт снизу»

Лидер белорусской Kotlin User Group Руслан Ибрагимов говорит, что ему известно о нескольких случаях, когда компании поднимали вопрос о переходе с Java на Kotlin. И отказывались от этой идеи. 

— Причины две. Во-первых, все они посчитали, что Kotlin не даёт достаточно преимуществ перед Java. А во-вторых, сейчас одна из компаний находится в процессе миграции со своих собственных серверов на Google Cloud, и её руководство не хотело накладывать один большой переход на другой. 

Хотелось бы, конечно, детальнее познакомиться с результатами их внутреннего ресёрча — но, увы. Могу добавить лишь, что они даже не пробовали написать что-то на Kotlin — просто собрали «за» и «против» в теории. Знаю также, что в Onde сейчас проверяют идею полностью перевести систему на Kotlin, используя Kotlin Native для iOS и Kotlin JS для Web приложений, вместо аналогичных компиляторов для Java.

Тенденция такова, что компаниям в большинстве своём не интересны новые языки. Инициатива скорее идёт снизу: разработчики знакомятся с языком, влюбляются — и пытаются донести до команды и менеджеров, что «есть такой классный Kotlin, мы хотели бы писать на нём». В ряде случаев к ним прислушиваются.

Разработка на Kotlin, кстати, — плюс для многих кандидатов на вакансию программиста в компании: я, например, ни за какие «коврижки» не променяю Kotlin на Java. 

«Разработчики Senior+ воспринимают любой новый язык как что-то одноразовое»

Бэкэнд-разработчик одной из компаний (пожелал остаться анонимным) рассказывает:

— Если команда работает на аутсорсе, простого разработчика даже не спрашивают: все решения по технологиям принимает кастомер. И он, конечно, без особого оптимизма воспринимает предложение команды внедрить новый язык, так как это связано и с рисками, и с ответственностью.

Вторая причина заключается в том, что за всё время существования JVM-платформы широкое распространение получил только Java. А Groovy, Scala и другие языки, пережив непродолжительный всплеск в своём развитии, потихоньку угасли. Памятуя об этом, большинство разработчиков уровня Senior+ (а они могут быть как среди менеджеров, так и на стороне заказчика) воспринимают любой новый язык как что-то одноразовое, о чём через неделю все забудут. Такие люди уже всё для себя решили — и какие бы ни были у вас аргументы, в споре они всегда дают универсальный ответ: «У меня есть Spring, Guava и так далее».

Не знаю, почему так получилось (хотя в душе догадываюсь), но закоренелые бэкенд-разработчики даже мегапопулярные языки, как JavaScript, воспринимают как что-то несерьёзное. А Node.Js или Kotlin — да кому это нужно, когда есть православная Java?! И хотя с приходом Serverless часть этих людей потихоньку начинает переобуваться, процесс этот очень медленный.

Ещё один собеседник dev.by отметил, что «жирный плюс к Java добавляют ещё в университете — ведь Kotlin не изучают в вузах». Руслан Ибрагимов соглашается с этим, но с оговоркой:

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

«Плюс для хайринга разработчиков: кандидаты отдают предпочтение таким проектам» 

Полгода назад разработчики Bamboo Apps рассказывали, что, когда выбирали язык для проекта от Jaguar Land Rover «Kotlin ещё был „тёмной лошадкой“ — заказчик решил не рисковать». Тем не менее команда сделала задел для перехода.

СТО компании Сергей Мищенко говорит, что «вопрос миграции затем поднимался несколько раз». А сам переход на Kotlin начал активно обсуждаться в конце зимы, перед релизом. Сейчас, говорит Сергей, компания приняла окончательное решение. Он признаётся, что тому немало способствовало заявление «Kotlin — first» для разработки под Android на Google I/O: 

— Мы в процессе миграции. Но для полного перехода нужно дополнительное время, и мы решили начать с тестов. Это не часть продакшн-кода, они не идут в релиз. 

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

Читайте также
«Цярплівыя і працавітыя, як кітайцы». Як нас бачыць кітайскі магістр беларускай філалогіі (ён пажыў у Мінску, Маскве і Кракаве)
«Цярплівыя і працавітыя, як кітайцы». Як нас бачыць кітайскі магістр беларускай філалогіі (ён пажыў у Мінску, Маскве і Кракаве)
«Цярплівыя і працавітыя, як кітайцы». Як нас бачыць кітайскі магістр беларускай філалогіі (ён пажыў у Мінску, Маскве і Кракаве)
Размаўляе на беларускай не горш (цi лепш?), чым беларусы.
1 комментарий
«Так и храню — в российских рублях. Может, война закончится, RUB ещё вырастет». К чему привязывают зп в Беларуси в 2025? Доллар всё? (Удивительно, но нет)
«Так и храню — в российских рублях. Может, война закончится, RUB ещё вырастет». К чему привязывают зп в Беларуси в 2025? Доллар всё? (Удивительно, но нет)
«Так и храню — в российских рублях. Может, война закончится, RUB ещё вырастет». К чему привязывают зп в Беларуси в 2025? Доллар всё? (Удивительно, но нет)
Ещё совсем недавно долларовая привязка зарплат была золотым стандартом в ИТ — она страховала сотрудников от девальваций, служила ориентиром роста и вообще казалась чем-то само собой разумеющимся: западные клиенты — западная валюта. 
19 комментариев
«Пока не иду в «Жабку». Но тяжело делать настолько мало». Каково мужьям айтишниц в эмиграции — три эмоциональных рассказа
«Пока не иду в «Жабку». Но тяжело делать настолько мало». Каково мужьям айтишниц в эмиграции — три эмоциональных рассказа
«Пока не иду в «Жабку». Но тяжело делать настолько мало». Каково мужьям айтишниц в эмиграции — три эмоциональных рассказа
Как живут жёны айтишников, мы в основном знаем из соцсетей: они много путешествуют, посещают мастер-классы и спа-салоны, возят детей на творческие кружки, пробуют себя в разных профессиях и могут позволить себе вообще не работать. (Если что, мягкая ирония.) А как живётся мужьям айтишниц? Имеют ли они такую же свободу для саморазвития и самореализации? И могут ли перестать беспокоиться о деньгах? Особенно после релокации в другую страну.
32 комментария
«Посидеть с внуком по видео». Как поддерживают родителей, которые остались
«Посидеть с внуком по видео». Как поддерживают родителей, которые остались
«Посидеть с внуком по видео». Как поддерживают родителей, которые остались
Можно ли помогать родителям удалённо? Берите идеи на заметку и делитесь в комментариях своими.
2 комментария

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.