Подтвердить что ты не робот

Что случилось с Scala.React?

Я прочитал бумагу, написанную Одерским "Устаревший шаблон наблюдателя с помощью Scala.React "

Гитуб выглядит заброшенным:

https://github.com/ingoem/scala-react

Кроме того, в недавнем классе Reactive Programming Coursera используется библиотека JavaRx Observable (с поддержкой Scala, конечно).

Есть ли история? Я могу предположить Scala. React просто не сделал это очень далеко. Является ли библиотека JavaRx на основе Observable целесообразной? Или мы можем ожидать чего-то подобного или лучшего от Typesafe?

4b9b3361

Ответ 1

Цитируя Li Haoyi,

который использовал Scala.React, его наблюдения:

  • "очень сложно настроить и начать работу".
  • "Для этого требуется достаточная глобальная конфигурация"
  • "Потребовалось несколько дней, чтобы получить базовый график потока данных (..,)".

У него было много вопросов, но он не смог связаться с автором публикации...

Li также реализовал Scala.RX для решения этих и других проблем. Код имеет хорошую форму, но я не могу наблюдать за его действием в стандартной библиотеке Scala. Кроме того, Li является драйвером текущих усилий Scala и Javascript, поэтому он в основном занят этим проектом.

Отвечая на ваши вопросы:

Является ли библиотека JavaRx на основе Observable целесообразной?

JavaRx основан на шаблоне Observer, который Мартин Одерски пытался осудить...

https://github.com/Netflix/RxJava/blob/master/rxjava-core/src/main/java/rx/Observer.java https://github.com/Netflix/RxJava/blob/master/rxjava-core/src/main/java/rx/Observable.java

В то время как каждая проблема, отмеченная Мартином в документе, верна и достоверна, Netflix использовал основное свойство Observables:

Фьючерсы и наблюдатели разделяют изоморфизм, таким образом, являются составными. В JavaRx Observable возвращает поток событий. Однако будущее с другой стороны, можно рассматривать как специализированное Наблюдаемое, которое возвращает только синглтон. В этом случае Фьючерсы и Наблюдения могут быть асинхронно составлены когда это имеет смысл.

Есть ли история?

Не знаю, но, возможно, Netflix сделал несколько спонсоров. Возможно, вы заметили логотип Netflix, появившийся в примерах алмазов RX....

Или мы можем ожидать чего-то похожего или лучшего от Typesafe?

Я честно сомневаюсь в этом. Почему они должны? "Типы" заняты тем, что складываться в промышленность и продвигать Akka дальше. Scala.React - аккуратная идея, но не производит никаких наличных денег, тогда как Акка приносит им платные клиенты....

Вместо этого я задал вопрос, что именно Scala. React, в конце концов, пытается решить?

IMHO, JavaRx уже делает хорошую работу, находится в производстве и те улучшения Scala. Возможно, это может быть добавлено. Возможно, этого недостаточно для серьезных изменений.

Ответ 2

RxJava: Реактивные расширения имеют очень мало общего с scala.react. RxJava имеет дело с наблюдателями и cuncurrency, но очень мало помогает в правильности порядка оценки. В основном это просто потоки событий, и если события, которые разделены на несколько эффектов, они никогда не будут согласованными. В основном это беспорядок и может использоваться только для графического интерфейса, где точность вычислений не так критична. Вы никогда не знаете, когда получите дополнительное обновление или дополнительное обновление.

scala.react - это однопоточная модель вычислений и имеет дело с порядком вычисления со строгим порядком оценки, который определяется функциональными зависимостями между вычислениями.

Акка, или актеры, опять же, является третьей моделью и совершенно другой. На самом деле это просто потоки с каким-то фантастическим синтаксисом и расписанием.

Неудивительно, что все в замешательстве. К сожалению scala.react никуда не двигался, что плохо, поскольку это единственная инновационная модель этих трех.