Какие преимущества у Scala перед Java8?

Здравствуйте!

Вопрос к специалистам по Java и Scala. Меня интересует, есть ли у Scala ощутимые преимущества перед анонсированной Java8? Я 8 лет работал в основном с C/C++, сейчас хочу выучить новый для себя язык программирования. Основная цель — разминка для мозга и освоение функционального программирования, вторичная цель — использование полученных знаний для разработки серверной части приложения (pet project). Очень заинтересовала Scala, но возник вопрос — будет ли Scala актуальна после выхода Java8? Не хотелось бы вкладывать силы в изучение технологии, которая может потерять свои преимущества через несколько лет.

Спасибо за ваши ответы.
  • Вопрос задан
  • 16371 просмотр
Пригласить эксперта
Ответы на вопрос 10
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Для разминки мозгов Scala очень подходит, а останется ли она актуальной — покажет время, а вовсе не релизы Java.
Scala — язык с сильной ФП-составляющей, в Java никогда этого не будет, и лямбды тут не помогут.
Ответ написан
Комментировать
charon
@charon
если вас интересует чисто разминка мозга и изучение новой парадигмы (ФП), то лучше освойте Хаскел. Правда, при этом придётся забыть про вашу вторичную цель.
Освоение чисто Джавы не очень приблизит вас к пониманию ФП, но зато в работе применить вы сможете с большим успехом.
Ответ написан
Комментировать
ivnik
@ivnik
Java 8 не будет являться функциональным ЯП, изменения происходят очень консервативно (наверно это в чём то неплохо). Одно из нововведений J8 это функциональный стиль работы с коллекциями (и некоторыми другими элементами стандартной библиотеки) и более удобный синтаксис записи лямба функций.
Если хотите изучить функциональный язык, то scala стоит попробовать. Если хотите изучить промышленный язык программирования, то лучше учите java. Кстати, scala работает под виртуальной машиной java и код на scala может использовать любые библиотеки java (в том числе и стандартную библиотеку).
Если решите изучать scala, то рекомендую лекции по scala на coursera, которые читает Мартин Одерски, автор scala: https://www.coursera.org/course/progfun
Ответ написан
@Seter17
Например на Scala очень удобно строить синтаксические деревья и создавать парсеры. Но наверно для создания бизнес приложений больше подходит Java, ибо уже давно работает в этом направлении
Ответ написан
keltanas
@keltanas
Software Developer
Из всего вышеперечисленного мне кажется Erlang наиболее соответствует требованиям уточнения. Все больше в интернете встречаю положительных отзывов о нем не только, как о изотерическом языке, а как о языке, успешно применяемом в продакшене.
Краткое введение в Erlang www.insight-it.ru/programmirovanie/erlang/osnovy-erlang-sintaksis-i-punktuaciya/
Ответ написан
Комментировать
charon
@charon
я полагаю, что вам стоить учить именно Java — это основа многих языков, в т.ч. Scala. С Джавы вам будет проще перейти не только на Scala, но и на многие другие языки. К тому же многие источники обучения по Скала предполагают, что вы знаете Джаву.
Ответ написан
kuzemchik
@kuzemchik
В некоторых вещах компилятор scala правильнее работает, избавляя от костылей java байткод.
А еще, когда нибудь scala начнет компилиться в CLR.
Java это хорошо, но мне больше нравится scala. Переехать со scala на java можно будет достаточно легко (Синтаксис у java ближе к c++)
Ответ написан
ks_ks
@ks_ks
В clojure гуглогруппе ежедневно по +\- 100 сообщений. Судя по этому можно отметить, что он Очень активно развивается…
+ куча появляющихся видео туториалов. + emacs, в котором предполагается разработка и его emacs lisp(который очень д.быть похож на clojure) — что само по себе преимущество. :) Есть ещё такая вот фенечка, которая возможно в перспективе будет удобнее того же coffee-script'а, для работы с JS. Ну и это — полностью функциональный я\п.
Ответ написан
@strobegen
Я бы предложил вам добавить в список для рассмотрения Ocaml или F# (по сути это почти один язык)
- оба этих языка похожи на Scala, тем, что совмещают FP и OOP да и в целом сильно похожи, есть даже вот такое сравнение вместе с haskell: Languages with Type Inference: OCaml, F#, Scala, H...
- оба в неплохо развиваются в последнее время.

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

Про тягости выбора рекомендую почитать вот это:
Replacing Python: Candidates
Replacing Python: Second Round


Clojure, Common Lisp, Scheme - я бы предложил оставить на потом тк в них нет мощной системы типов, разве, что можно вскользь познакомится с общими принципами лиспов тк не мало статей где базовые принципы FP рассматриваются на примере scheme.
Если судить по irc каналам Clojure сейчас дико популярна, больше чем скала примерно на уровне Haskell.
Ответ написан
Комментировать
@potan
Функциональный программист
Pattern matching, лучшая работа с коллекциями, REPL, развитая система типов, компактный синтаксис, отсутствие необходимости лишний раз писать 'return'.
Из недостатков - более сложный рефакторинг кода (паттерны еще не очень проработаны).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы