Каковы отличительные особенности Highland.js, Kefir.js и Rx.js?

Поскольку в SO необходимо избегать субъективных ответов, я специально задаюсь вопросом: каковы функциональные и / или различия в производительности между этими тремя функциональными / реактивными библиотеками, которые заставили бы меня выбрать одну из них среди других? Я исключил BaconJS из-за его зависимости от jQuery. Я новичок в потоках JS и прежде всего заинтересован в том, чтобы начать знакомство с ними сначала в NodeJS, а затем в контексте AngularJS. Если вы выбрали один из них над другими, какие критерии приводят к выбору?

2 ответа

Решение

Все ниже довольно субъективно:)

RxJS

Плюсы:

  • Документация и большое сообщество.
  • Общий интерфейс с семейством Rx*. Это большое преимущество, потому что вы можете брать образцы из сообщества RxJava.
  • Много примитивов в библиотеке и несколько примеров, как их использовать
  • обратное давление
  • это своего рода эталон для других библиотек

Минусы:

  • Иногда это выглядит слишком сложным
  • Реализовано с учетом "Java"

Bacon.js

Pros

  • Действительно хорошая документация с некоторыми продвинутыми примерами (игра-змея, реализация, например)
  • много примитивов
  • Реализовано с учетом JS
  • Я нашел, что это действительно легко начать

Минусы - он не реализует противодавление, что делает его глупым на бэкэнде

Highland.js

Плюсы:

  • он предназначен для работы со средой node.js(или browserify), которая действительно хороша
  • нет инопланетных концепций (с точки зрения JavaScript/ узла)
  • обратное давление
  • реализация на вершине потоков Node, что действительно отличная идея
  • маленький след

Минусы:

  • Глупая документация и без примеров. На самом деле каждый раз, когда я пытаюсь взять образцы из Rx или Bacon
  • отсутствие некоторых примитивов. На самом деле вы можете реализовать большинство из них самостоятельно, но это болезненно (см. Предыдущий пункт)

Резюме: из-за отсутствия сэмплов вы все их выучите:) ИМХО, наиболее перспективным является Highland.js. Но RxJs гораздо более зрелый

Совет: если вам нужно что-то спросить в Stackru, используйте диалект RxJS и переведите это на молодежь

В хранилище https://github.com/Reactive-Extensions/RxJS есть страницы, сравнивающие их (естественно, все остальные с RxJS).

Bacon.js (и kefir.js также)

Highland.js

Другие вопросы по тегам