Когда-то на рынке говорили о Python-парадоксе — Google интервьюировала Java, C и прочих программистов и требовала от них знания Python, таким образом отбирая тех, кто развивается, смотрит по сторонам, заинтересован в чём-то ещё, кроме основной сферы деятельности. То же самое сейчас со Scala: если компания выбирает этот язык, значит она хочет найти действительно крутых разработчиков.
«Жизнь слишком коротка, чтобы всё время писать на Java», — заявляют Scala-девелоперы. И аргументируют.
1. Scala позволяет писать хороший код с меньшим количеством ошибок: компилятор тщательнее проверяет код, что позволяет увереннее его рефакторить. Функциональное программирование в принципе сфокусировано на тех практиках, которые делают код более простым для понимания и поддерживаемым, потому что чистые функции и неизменяемые данные легче понять и отладить. Можно сказать, это тренд во многих языках программирования таких, как TypeScript и Java. Но в Scala эти практики реализуются на уровне языка.
2. Scala делает разработчиков счастливыми. В языке хорошая система типов и поддержка функциональной парадигмы плюс живое комьюнити, совместимость с Java-экосистемой и появление новых подходов и собственных библиотек каждый год. Перейти на Scala стоит, чтобы снова получать удовольствие от своей работы. Жизнь слишком коротка, чтобы всё время писать на Java. Если разработчики переходят на Scala, чаще всего они на этом языке и остаются. Случается, скалисты мигрируют на Haskell или Rust, но в Java возвращаются крайне редко — к возможности писать элегантный код, как и ко всему хорошему в принципе, быстро привыкаешь. Scala позволяет изучать не только язык, но и всю обширную экосистему, поэтому разработчикам не бывает скучно. В Scala-библиотеках есть куда развиваться и расти, а значит быть вознаграждённым: полезные знания хорошо оплачиваются.
3. Scala — один их самых популярных коммерческих языков, который используют, например, в распределённых системах. На Scala написан весь игровой бэкенд Evolution Gaming, его заслуженно любят «Тинькофф Банк», LinkedIn, Twitter, Netflix и Epic Games (Fortnite). Scala также может использоваться для фронтенда в виде Scala.js, который транслируется в JavaScript.
4. Мигрировать на Scala с Java или TypeScript не так тяжело, как кажется. О том, что Scala — язык сложный, говорят те, кто никогда не пробовал на нём писать. Не обязательно глубоко понимать внутреннее устройство используемых библиотек, чтобы начать разработку на Scala. Это как с машиной: можно не разбираться, как она работает, но комфортно ездить. Всегда можно начать со Scala как с «лучшей Java», а затем внедрять в свой код элементы функционального программирования.
5. Scala работает на JVM, используя тем самым многолетний опыт её разработчиков. Благодаря этому скорость работы кода на Scala практически аналогична скорости кода на Java. Многие распространённые в JVM-мире библиотеки написаны на Scala (например, Akka и Spark), и проще всего их использовать именно из Scala-кода.
6. Scala тоже критикуют. Например, за медленную компиляцию, которая благодаря последним улучшениям перестала быть проблемой. Да, компилятор по-прежнему медленнее, чем в Java, потому что делает больше работы и не даст собрать проект, пока не будут исправлены все ошибки, но это точно не головная боль. Также на Scala больше сложностей для написания проектов для Android, потому что эта ОС не является высшим приоритетом для Scala. Но при этом существуют проекты, позволяющие компилировать код на Scala вместо Java байт-кода в машинный код (Scala Native) и JavaScript (Scala.js), а также использовать библиотеки этих экосистем.
7. В целом Scala — язык с относительно высоким порогом входа. Некоторые сдаются, пытаясь изучить Scala и сталкиваясь со сложными для понимания библиотеками, но нет ничего невозможного. Для этого есть книги (1, 2, 3, 4, 5), курсы и Scala-школа, которую запускает продуктовая компания Evolution Gaming. Трехмесячное обучение — бесплатное, опыт программирования на Scala не обязателен, но знание одного из фундаментальных языков программирования будет плюсом. Лучшим выпускникам предложат работу в Evolution Gaming.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.