Ответы пользователя по тегу Scala
  • Какие книги почитать по параллельному программированию на Scala?

    @nirvimel
    Параллельно программирование в основном касается рантайма, а не собственно языка.
    Поэтому, можно брать всю ту же литературу, что и для параллельного программирование на Java (а такой литературы достаточно). Принципы там одни, да и библиотеки в основном пересекаются. Другой язык никак не помешает пользоваться общим рантаймом. Единственное отличие: на Scala аналогичный код в итоге может выглядеть намного красивее (если при написании мыслить по-скаловски).
    Впоследствии стоит переходить к изучению документация к специфическим скалавским параллельным библиотекам/фреймворкам (Akka и др.). На более продвинутом уровне чтение исходников стандартной и сторонних библиотек будет давать гораздо более информации за более короткое время, а чтение книг (авторы которых просто пропустили через свою голову прочитанный код) покажется расточительным расходованием своего времени.

    Рецепт изучения (один из возможных): Если начинать с самых азов, то подойдет соответствующая глава (про concurrency) из книги Брюса Эккеля. Там дается очень неплохое введение в тему, раскрываются соответствующие данной области проблемы и показываются основные пути их решения.
    Далее следует выбрать более конкретное направление. В рамках темы параллельных вычислений существуют несколько различных подходов (смешивать их в одном проекте не только бессмысленно, но и опасно).
    1. Классический подход, основанный на потоках и блокировках ресурсов.
    1A. Разновидность (1), где вместо явных блокировок используются неблокирующие очереди.
    2. Подход, основанный на повсеместном использовании Promise/Future.
    3. Акторы (типизированные и нетипизированные (эти почему-то становятся более популярны)).
    4. STM.
    После выбора подхода к решению распараллеливания вычислений, следует выбрать конкретный инструмент (библиотеку) и углубится в изучение его официальной документации и любых примеров, найденных в Сети. На более продвинутом уровне можно будет перейти к чтению исходников и сторонняя литература больше не понадобится.

    UPD: Все-таки существует специальная книга по Scala Concurrecy. Я ее не читал. Но судя по оглавлению, все основные темы там раскрываются.
    Ответ написан
    Комментировать
  • Стоит ли учить Scala + Akka?

    @nirvimel
    Akka предназначен в первою очередь для борьбы с проблемами, связанными со сложной логикой в многопоточном коде (всякие deadlocks, race conditions).

    сложен ли в освоении?

    Сколько времени у вас обычно занимает изучение отдельного языка программирования? Примерно столько может потребовать изучение Scala для тех, кто пришел не с Java. Для тех кто пришел с Java - примерно 2/3 от этого времени.
    Akka это клон модели акторов Erlang, соответственно, для знакомых с ней, изучение akka потребует чуть больше чем ноль минут. Для тех кто намучился с java concurrency (отчасти справедливо и для .net), акторы - как бальзам на душу, хоть и незнакомая концепция, но воспринимается очень легко (еще бы, после java concurrency!). Для тех, кто писал в основном однопоточный код, акторы (вместо прямого вызова функций) - нечто совершенно новое, своеобразно, непривычное.

    применяется ли он в продакшене?

    На странице поищите SELECTION OF PRODUCTION USERS.
    Ответ написан
    Комментировать
  • На чем написать высоконагруженный api сервер?

    @nirvimel
    Нисколько не ставя под сомнение авторитетность, приведенного uvelichitel , бенчмарка от techempower.com, хочу только напомнить, что это - бенчмарк для фреймворков. Когда задача стоит так: "производительность любой ценой!", то всем фреймворкам лучше подвинутся в сторону и не мешать.

    Один только пример: эти парни добились скорости обработки 2 микросекунды на запрос-ответ даже не на голом железе а под JVM. Все фреймворки-чемпионы techempower-бенчмарка молча курят в стороне.
    Ответ написан
    1 комментарий
  • Scala: с чего начать?

    @nirvimel
    Лучше всего начинать с классики:
    51S7sMsoAdL._SX377_BO1,204,203,200_.jpg
    На русском из книг пока только это:
    6d8274274c95a316d0cf1ba9ac36cfda.jpg
    Еще на русском достойно внимания:
    1. Путеводитель неофита по Scala.
    2. Scala в примерах (попытка перевода Scala by examples, Martin Odersky).

    Ответ написан
    Комментировать
  • Сойдет ли Scala как второй язык после JS?

    @nirvimel
    Scala более похож на js из всех языков

    Это что шутка такая? Как статический, компилируемый язык со строгой типизацией и развитой системой типов может быть похож на динамический интерпретируемый скрипт?
    Ответ написан
    1 комментарий