Так как субъективных ответов следует избегать на SO, я специально спрашиваю: каковы функциональные и/или различия в производительности между этими тремя функциональными/реактивными библиотеками, которые заставили бы меня выбрать один из них над другими? Я исключил BaconJS из-за его зависимости от jQuery. Я новичок в потоках JS и, прежде всего, заинтересован в том, чтобы сначала ознакомиться с ними в NodeJS, а затем в контексте AngularJS. Если вы выбрали один из них над другими, какие критерии приводят к выбору?
Каковы отличительные черты между Highland.js, Kefir.js и Rx.js?
Ответ 1
Все ниже выглядит довольно субъективно:)
RxJS
Плюсы:
- Документация и большое сообщество.
- Общий интерфейс с семейством Rx *. Это большое преимущество, потому что вы можете принимать образцы из сообщества RxJava.
- Множество примитивов в библиотеке и некоторые примеры их использования
- противодавление
- это своего рода эталон для других библиотек.
Минусы:
- Иногда он выглядит сложнее
- Реализовано с учетом "Java"
Bacon.js
Доводы
- Действительно хорошая документация с некоторыми расширенными образцами (игра-змея, реализация, например)
- много примитивов
- Реализовано с учетом JS
- Мне было очень легко начать
Cons - он не реализует противодавление, которое делает его глупым на бэкэнд
Highland.js
Плюсы:
- он предназначен для работы с node.js(или браузером) средой, которая действительно приятна
- нет понятий инопланетян (с точки зрения JavaScript/ Node)
- противодавление
- реализация находится поверх Node потоков, которая действительно отличная идея
- небольшой размер
Минусы:
- Глупые документы и примеры. На самом деле каждый раз, когда я пытаюсь принять образцы из Rx или Bacon
- отсутствие некоторых примитивов. На самом деле вы можете реализовать большинство из них сами уже реализованы, но это больно (см. Предыдущий пункт).
Резюме:, потому что отсутствие образцов вы узнаете их все:) ИМХО, наиболее перспективным является Highland.js. Но RxJs намного более зрелый
Совет: Если вам нужно что-то спросить на StackOverflow, используйте диалект RxJS и переведите его в молодежь
Ответ 2
В репозитории Reactive-Extensions есть страницы, сравнивающие их (каждый из них с RxJS, естественно).