Комментарии 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? Или в чем задачи разные?
Никогда не пишите фронт/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/caseExtension functions — пишешь
"Kotlin".toSuperSugar()и кайфуешь, что не надо тащить утилитный класс
Рекорды, нормальные notnull аннотации таки сделали недавно, switch expression.
Последнее вроде удобно, но в любом проекте покрупнее стоит запретить. Ад с видимостью и конфликты того не стоят.
Работающие гринтреды тоже завезли. Все корутины вместе с реактом пора на пенсию отправлять.
Как-то несерьезны все эти преимущества.
Не знаю кому как, а мне в свое время котлин показался write only языком - да, кода получается меньше, но он буквально провоцирует доводить это "меньше" до абсурда, после чего прочитать написанное становится не так-то и просто. Хотя, возможно я просто недостаточно долго на нем проработал.
это вы ещё скалу не смотрели, в любом случае там начинается стадия, когда когнитивная нагрузка очень высока, и от одной строчки кода начинает плавится мозг, тк там под капотом как раз то, что в java красиво и нативно раскладывается в несколько и сразу понятно что происходит.
Эм... А это не вы писали для российского ОТП новый клиент-банк, вместо iBank? Надеюсь что не вы, а то у меня в адрес его программистов много разных слов скопилось
Не я, я работаю в другом трайбе)
Могу передать коллегам, если только там есть что-то кроме нецензурных слов)))

Kotlin — моя любовь, Java — моя судьба. История одного возвращения