Обновить

Комментарии 32

Kotlin - редкий зверь в российском enterprise.

Я в 2020 с Java на Kotlin пересел. Работаю в enterprise. Проблем с поиском работы не испытывал.

Но если на Kotlin вы пишите backend, то Java вы должны знать. Т.к. 99% бековских фреймворков ориентированы на Java.

А вы back или мобилки пишите?

Мой личный опыт показал, что беда на рынке именно бэков котлина.

Возможно, сказалась общая ситуацию на рынке труда сейчас

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

Спасибо за ваш комментарий, интересно

ИМХО, если вы нацелены на бэк, то не стоит опасаться требования Java/Kotlin в вакансии. То, что часть микросервисов написана на Java а часть на Kotlin - это обычная практика.

Вопрос больше в проценте написания котлина в таких вакансиях, что это обычная практика - понятно, не спорю

Под разные задачи

Очень интересно было бы узнать под какие такие разные задачи, языки которые крутятся на одном и том же рантайме и отличаются только синтаксисом?

Вообще у котлина есть стадия компилятора для фронта -
Статья: https://kotlinlang.org/docs/compiler-phases.html#frontend-ir

"Frontend (FE) ... performs call resolution, type inference, smart casts, etc. The result is binding context that maps PSI elements to descriptors (semantic model)."

И если мне не изменяет память она есть в любом компиляторе котлина, следовательно java будет лучше для каких-то annotation Processing например

А вот Котлин прижился у девопсов, многие файлы для девопсов, например файлы тимсити, написанные на kts

Так что разница все таки есть)

А вот Котлин прижился у девопсов, многие файлы для девопсов, например файлы тимсити, написанные на kts

Первый раз такое слышу. тимсити - детище JB не удивительно

Вообще у котлина есть стадия компилятора для фронта -

Т.е. Kotlin это язык для frontend? Или в чем задачи разные?

Т.е. Kotlin это язык для frontend? Или в чем задачи разные?

Стадия компилятора не связана с классическим frontend - это внутренности компилятора. Но на Kotlin все же можно писать под Wasm/JS, а также под iOS (на самом деле Native в целом). И рантаймы там действительно другие, не JVM.

В теории то оно понятно, там и Scala в JS умеет. На практике в реальной жизни это либо андроид либо backend т.е. один к одному с джавой.

Никогда не пишите фронт/js на kotlin!! Постоянная долгая перекомпиляция, потеря типов и ужасная отладка!
Мне хватило одного небольшого проекта на kvision, чтобы начать быстро-быстро учить react

Я в 2020 из за корутин перешёл, так как писать реактивные сервисы на Project Reactor/WebFlux тяжело, читать их больно, а отлаживать так просто пытка. С появлением Project Loom ситуация с написанием реактивных решений на Java улучшилась, но лично мне всё равно корутины больше нравятся, так как там все аспекты асинхронного программирования интуитивно понятны на уровне синтаксиса.

Ну и в целом на Kotlin писать гораздо приятнее и проще чем на Java. Говорю как человек, который 18 лет писал на Java и 5 лет на Kotlin.

все аспекты асинхронного программирования интуитивно понятны на уровне синтаксиса.

Как сказал один автор, в большинстве случаев достаточно просто добавить модификатор suspend :-)

Ну и в целом на Kotlin писать гораздо приятнее и проще чем на Java. Говорю как человек, который 18 лет писал на Java и 5 лет на Kotlin.

Тогда лучше не пробовать C#. Можно словить разочарование от осознания - насколько на самом деле все нормально и удобно можно было сделать.

Пробовал я C#, но очень давно, больше 20 лет назад. Хороший язык, удобный. Но я тогда сделал выбор в пользу экосистемы Java, так как работу на Java гораздо проще было найти. Мне кажется, что сейчас ситуация примерно такая же - рыночная доля Java гораздо шире, чем .Net и C#.

PS

Когда речь идёт о бекенд разработке, то я Kotlin причисляю к экосистеме Java.

Да, все так. Чудовищной ошибкой Microsoft было делать C# только под Windows. Жадность покоя не давала. Только в 2016 одумались и сделали кроссплатформу. Хоть доля C# на рынке большая до Java естественно не дотягивает. Но как язык и платформа C#/.net это прям пример как нужно делать.

ps. Занимательный забавный факт.

Java опередила C# за счет кроссплатформенности в свое время. Но если посмотреть сейчас, то почти все что пишут на Java это корпоративный бэкенды. Ну и мобилки (Kotlin). В то время как на C# пишут и бэкенды и фронтенды и десктопы и игры и CLI утилиты и чего только не пишут.

Автор, как я вас понимаю! У меня тоже на работе Python, а в душе́ - Kotlin. Называю себя Kotlin-энтузиастом.

Создаем свою секту по котлину значит)

Прошло уже больше полугода. Переход был полностью бесшовным.

Эх, молодежь! Полгода - это вообще ни о чём.

  • data class — и нет Lombok'а(понимаю, что в java есть прекрасный аналог - Record)

  • ?.let {} — и нет if (obj != null)

  • when как expression — и нет многоэтажных switch/case

  • Extension functions — пишешь "Kotlin".toSuperSugar() и кайфуешь, что не надо тащить утилитный класс

Рекорды, нормальные notnull аннотации таки сделали недавно, switch expression.

Последнее вроде удобно, но в любом проекте покрупнее стоит запретить. Ад с видимостью и конфликты того не стоят.

Работающие гринтреды тоже завезли. Все корутины вместе с реактом пора на пенсию отправлять.

Как-то несерьезны все эти преимущества.

Это в мире где все обновились.

А на деле только вот сейчас работают над переходом на 17 с 11.

Так что Kotlin вари таком раскладе здоров облегчает жизнь.

Обновить джаву точно проще миграции на другой язык.

Не знаю кому как, а мне в свое время котлин показался write only языком - да, кода получается меньше, но он буквально провоцирует доводить это "меньше" до абсурда, после чего прочитать написанное становится не так-то и просто. Хотя, возможно я просто недостаточно долго на нем проработал.

это вы ещё скалу не смотрели, в любом случае там начинается стадия, когда когнитивная нагрузка очень высока, и от одной строчки кода начинает плавится мозг, тк там под капотом как раз то, что в java красиво и нативно раскладывается в несколько и сразу понятно что происходит.

И не хочу! Язык должен помогать не просто выражать мысли, а писать поддерживаемый код, потому что мысль сегодня есть, а завтра ее расшифровывать приходится, и кому они нафиг нужны эти шарады...

Эм... А это не вы писали для российского ОТП новый клиент-банк, вместо iBank? Надеюсь что не вы, а то у меня в адрес его программистов много разных слов скопилось

Не я, я работаю в другом трайбе)

Могу передать коллегам, если только там есть что-то кроме нецензурных слов)))

Из цензурных только "уважаемые разарботчики, понимаю что у вас есть ТЗ, но все-таки!"

Ахахаха, понимаю, передадим инфу)

По классике, да? Как там: "Уважаемые разработчики! Являясь многолетним и верным пользователем вашего продукта я бы хотел узнать - какого фига....."

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации