Так как субъективных ответов следует избегать на SO, я задаю вопрос: каковы функциональные и/или различия в производительности между этими тремя функциональными/реактивными библиотеками, которые заставили бы меня выбрать один из них над другими? Я исключил BaconJS из-за его зависимости от jQuery. Я новичок в потоках JS и, прежде всего, заинтересован в том, чтобы сначала ознакомиться с ними в NodeJS, а затем в контексте AngularJS. Если вы выбрали один из них над другими, какие критерии приводят к выбору?Каковы отличительные особенности Highland.js, Kefir.js и Rx.js?
ответ
Все ниже довольно субъективная :)
RxJS
Плюсы:
- Документация и большое сообщество.
- Общий интерфейс с Rx * family. Это большое преимущество, потому что вы можете принимать образцы из сообщества RxJava.
- Много примитивов в библиотеке и некоторые образцы, как использовать их
- противодавление
- это своего рода эталоном для других библиотек
Минусы:
- Иногда это выглядит сложнее
- Реализовано с использованием «Java»
Bacon.js
Pros
- Действительно хорошая документация с некоторыми передовыми образцами (змея игра, реализация, например)
- много примитивов
- Реализовано с JS в виду
- Мне было очень легко начать
Против - это не реализует обратного давления, что делает его глупо на внутреннем интерфейсе
Хайленд.JS
Плюсов:
- он предназначен для работы с Node.js (или browserify) средой, которая является очень приятно
- нет чужеродных концепций (с точки зрения/узла JavaScript)
- назад -pressure
- Реализация на вершине потоков узлов, которая действительно отличная идея
- малая занимаемая площадь
Минусы:
- Глупый документация и нет примеров. На самом деле каждый раз, когда я пытаюсь принять образцы из Rx или Bacon
- Отсутствие некоторых примитивов. На самом деле вы можете реализовать большинство из них сами уже реализованы, но это больно (см предыдущий пункт)
Резюме: потому, что отсутствие образцов вы будете изучать их все :) ИМХО, наиболее перспективным является Highland.js , Но RxJs гораздо более зрелый
Совет: Если вам нужно что-то спросить на StackOverflow использовать RxJS диалект и перевести его в молодости
В репозитории Reactive-Extensions есть страницы, сравнивающие эти (каждый из них с RxJS, естественно).
Спасибо за указание тех из; Я прочитаю их. Я держу этот вопрос открытым на некоторое время, если кто-то проведет глубокое сравнение между ними. – Ville
- 1. Отличительные особенности, основанные на коллекции
- 2. Отличительные особенности фильтра в массиве
- 3. Отличительные особенности цветопередачи в Firefox и Chrome
- 4. JsonResult, ActionResult, Json, DataContractJson serializer ... отличительные особенности?
- 5. Могут ли только отличительные особенности Git?
- 6. Отличительные особенности релиза отладки в Android
- 7. Отличительные особенности в mongodb с использованием java
- 8. Каковы основные особенности Haskell?
- 9. Каковы отличительные особенности ISL и PPL для ClooG при использовании gcc?
- 10. Какие основные отличительные особенности/архитектурные различия между BEAM и JVM?
- 11. Отличительные особенности режима разработки и настройки среды выпуска на Android
- 12. Каковы свойства/особенности предупреждения JQuery?
- 13. Сессии в OpenCPU: каковы особенности?
- 14. Каковы самые сильные особенности Memcached?
- 15. NHibernate 2-й уровень Cache Отличительные особенности поставщика
- 16. Каковы некоторые интересные особенности исходного кода EveryBlock.com?
- 17. Rx.js и рабочий процесс приложения
- 18. Каковы особенности алгоритмов обнаружения объектов и другие сомнения
- 19. отличительные черты между stackexchange.redis и servicestack.redis
- 20. Контекст в Highland.js
- 21. Async Map with Highland.js
- 22. Как Highland.js реализует противодавление?
- 23. Повторить значение с highland.js
- 24. CombineLatest in Highland.js
- 25. Загрузка файлов Особенности Особенности
- 26. Последовательность карт в Rx.JS
- 27. Rx.js fromEvent + flatMapLatest сломан?
- 28. конвертировать async в Rx.js
- 29. Rx.js параллелизм с обещаниями
- 30. Особенности и преимущества ForkJoinWorkerThread
Спасибо за ответ .. это очень то, что я искал («плюсы/минусы»). 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