Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (2)

Наибольший вклад в теги

Все теги (12)

Лучшие ответы пользователя

Все ответы (10)
  • Какой тип проектов стоит сделать для портфолио веб-разработчика, на позицию Junior?

    denisftw
    @denisftw
    Сейчас не 2012-й, так что точно не CoffeeScript, не Grunt и не Backbone.
    Имеет смысл сделать что-нидудь на React или Angular 2 - они сейчас в тренде и пригодятся в любом случае.
    Из технологий - если получится, то Webpack и EcmaScript 6 (через Babel)
    Ответ написан
  • C чего начать изучение scala?

    denisftw
    @denisftw
    Вопреки распространенному мнению, Scala - достаточно простой в освоении язык. Описываю самый быстрый из известных мне способ (работает, если уже есть знания любого другого языка - C#, Ruby, PHP, Java - без разницы какого):

    1. Смотрим полуторачасовое видео здесь:

    https://www.youtube.com/watch?v=grvvKURwGNg

    В отличие от многих других старинных презентаций по Скале, это видео от Венката не смотрится устаревшим даже сейчас. В своей презентации он рассказывает о том же, о чем он пишет в книгах "Programming Scala"/"Pragmatic Scala". Понятно, что за полтора часа язык не освоить, но чтобы получить общее представление это видео отлично подойдет.

    2. Далее скачиваем бесплатно первую половину моей "Modern Web Development with Scala" (разделы "Language fundamentals" и "Functional programming" - около 40 страниц) отсюда:

    https://leanpub.com/modern-web-development-with-scala

    В этих главах как раз описываются вещи, которые используются 80% времени.

    3. После этого берем Play Framework и начинаем пилить свое Web-приложение. Для старта знаний хватит, а остальное можно освоить в процессе.

    Если кажется что не хватает знаний по синтаксису/стандартной библиотеке, то всегда есть книга Мартина:

    www.amazon.com/Programming-Scala-Comprehensive-Ste...

    Около 800 страниц, но в плане синтаксиса там есть почти все и читается она довольно легко. Есть еще "Scala for the Impatient" Хорстмана и "Programming Scala" (2-е издание) от O'Reilly, но на фундаментальность ни та, ни другая не претендуют.

    И еще. Я бы не стал на старте заморачиваться с известные курсом "Functional Programming Principles in Scala", который периодически крутят на Курсере. Курс действительно замечательный, но трудозатраты для начинающего будут просто огромными, а отдача - неочевидной.
    Ответ написан
    2 комментария
  • Какие книги почитать по параллельному программированию на Scala?

    denisftw
    @denisftw
    Зависит от целей. Если нужно получить теоретический обзор по всем возможным подходам, то да, можно посмотреть на книгу "Learning Concurrent Programming in Scala", которую написал Александр Прокопец из EPFL. Если интересуют более практические вещи, то это конечно лишнее.

    По большому счету, основная абстракция для организации асинхронной обработки в Scala - это Future. Они типизированы, они composable, они поддерживаются практически всеми mainstream-библиотеками, описаны практически в любой книге по Scala 2.10+. Основной их минус - это то что они не lazy by design, из-за чего начинают сразу выполняться и требуют ExecutionContext для большинства операций. У Typelevel-тусовки есть множество альтернатив, которые этого недостатка лишены - ScalaZ Task, FS2 Task и наконец, Monix Task (кстати, очень хорошая документация - https://monix.io/docs/2x/eval/task.html).

    Akka, как таковая, конечно не является альтарнативой Future'ам - и применяться должна весьма ограничено: Actor'ы не типизированные, не composable. Основной их use case - это долгоживущие процессы с изменяемым состоянием. STM и блокировки на Scala практически никто не использует.
    Ответ написан
    Комментировать
  • Стоит ли новичку изучать Kotlin. Scala?

    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 и т.д. - но если поиск работы не является приоритетом, то это и неважно.
    Ответ написан
    Комментировать
  • Насколько подходит Scala как язык для web?

    denisftw
    @denisftw
    По моим субъективным наблюдениям, большая часть вакансий на Scala - это как раз вчерашние Ruby-шопы, которые пилят что-то на Play Framework, ну и само-собой все что связано с BigData и Spark.

    По первому вопросу - конечно подходит, хотя может пока и не для фриланса.

    Была недурственная презентация на SlideShare, где сравниваются Play 2 и Rails:
    www.slideshare.net/danicuki/play-vs-rails

    И более провокационная от инженера из SoundCloud на ту же тему:
    www.slideshare.net/pcalcado/from-a-monolithic-ruby...
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (1)