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

Каковы отличительные черты между Highland.js, Kefir.js и Rx.js?

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

4b9b3361

Ответ 1

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

RxJS

Плюсы:

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

Минусы:

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

Bacon.js

Доводы

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

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

Highland.js

Плюсы:

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

Минусы:

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

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

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