2015-10-18 4 views
12

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

ответ

16

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

RxJS

Плюсы:

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

Минусы:

  • Иногда это выглядит сложнее
  • Реализовано с использованием «Java»

Bacon.js

Pros

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

Против - это не реализует обратного давления, что делает его глупо на внутреннем интерфейсе

Хайленд.JS

Плюсов:

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

Минусы:

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

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

Совет: Если вам нужно что-то спросить на StackOverflow использовать RxJS диалект и перевести его в молодости

+0

Спасибо за ответ .. это очень то, что я искал («плюсы/минусы»). Highland.js выглядит, пожалуй, наиболее привлекательным, основываясь на том, что вы написали выше. Однако, поскольку я исследую React, [существует пример использования RxJS для потока данных вместо Flux] (http://qiita.com/kimagure/items/22cf4bb2a967fcba376e). Кроме того, [Rx bindings for React] (https://github.com/fdecampredon/rx-react) и [пример объединения React, RxJS, React-router и Webpack] (https://github.com/ Cmdv/React-RxJS). Итак, вы правы, я, скорее всего, в конечном итоге узнаю больше, чем один из них. :) – Ville

5

В репозитории Reactive-Extensions есть страницы, сравнивающие эти (каждый из них с RxJS, естественно).

Bacon.js (and kefir.js as well)

Highland.js

+0

Спасибо за указание тех из; Я прочитаю их. Я держу этот вопрос открытым на некоторое время, если кто-то проведет глубокое сравнение между ними. – Ville

Смежные вопросы