Задать вопрос
@Bartar

Стоит ли новичку изучать Kotlin. Scala?

Вопрос "нубский" , но если я новичок и собираюсь писать программы для себя , а не искать работу стоит ли изучать выше упомянутые языки вместо java ? В частности волнует в чем разница , точнее причины появления этих языков и решили ли они проблему? Часто вижу выражения типа " Вот я изучил Scala/Kotlin и мне java перестала нравится и вообще она не нужна." правдиво ли они?
  • Вопрос задан
  • 4094 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
AlekseyPleshkov
@AlekseyPleshkov
Java/Swift developer, transhumanist, dreamer.
Эти выражения отчасти верны. Java язык популярный и мощный, он еще долго будет востребован и нужен. Scala имеет свою экосистему и плохо завязана с Java (грубо говоря). Kotlin же не только полностью совместим с java, но и сам по себе очень продуманный язык. Писал на Kotlin несколько проектов и после него больно возвращаться на Java.

Вывод: Советую смотреть именно в сторону Kotlin, учитывая не только качественную реализацию языка, но и полную совместимость с Java (А еще там Java автоматически конвертируется в Kotlin ;) ).
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
denisftw
@denisftw
Вообще, с точки зрения изучения, Kotlin и Scala очень похожи. Здесь нужно отдать должное ребятам из JetBrains, которые не стали изобретать велосипед, а взяли очень удачный синтаксис у Scala и немного разбавили его C#-подобными фичами.

У Scala есть два преимущества - это гораздо более развитая экосистема (плюс, полноценная стандартная библиотека, как правильно заметил @Sirikid) и наличие "второго дна" в виде Typelevel-тусовки. До последнего доходят далеко не все, но если интересно, то в чисто функциональных Scala-библиотеках вовсю используются type classes и category theory и тут не то что Java 8 не подойдет - такое вообще далеко не на всех ФП-языках получится сделать.

Котлин быстрее компилируется и за счет этого может легко встраиваться в существующие Java workflow. Scala этого себе позволить не может, так как продуктивная разработка практически всегда подразумевает использование SBT - обычным Maven'ом тут не обойтись. Сейчас многие используют Котлин для Андроида, но тем не менее, писать Веб-приложения на Котлине вполне можно - об этом у меня есть книга - "Modern Web Development with Kotlin".

То что у Scala якобы проблемы с интероперабельностью с Java - это популярный миф. Например, мой самодельный блогогенератор s2gen без проблем использует как чисто Scala-библиотеки типа Monix и Circe, так и чисто Java-библиотеки типа Apache Commons, Logback и FreeMarker. Для Scala действительно написано много оберток, но это следствие распространенности языка, только и всего. Лет через пять для Котлина количество оберток будет точно таким же, если не больше - собственно, они уже появляются, например, "jackson-module-kotlin" или "RxKotlin".

Наконец, по поводу, Java. Java действительно в большинстве проектов не нужна - и Котлин, и Скала дают схожую производительность при этом увеличивая продуктивность как минимум раза в полтора. Другое дело, что есть еще организационные барьеры - научить всех разработчиков новым языкам, перевести систему сборки, CI и т.д. - но если поиск работы не является приоритетом, то это и неважно.
Ответ написан
Комментировать
Rou1997
@Rou1997
Разница только в синтаксисе, все остальное то же самое, проблему многословности синтаксиса оба языка решают, проблему самих библиотек - нет.
Стоит ли изучать, вопрос: для какой ОС вы собираетесь писать, какие программы? Для некоторых ОС и задач еще лучшие языки есть.
Ответ написан
EugeneP2
@EugeneP2
Java Dev
Scala вроде бы умирает... На котлине пока крупных проектов нет, но ради интереса я бы выбрал котлин.
Ответ написан
@ComatoZZZ
Сейчас развивается BigData и там много Scala. Например тот же спарк.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы