Javascript reactive programming and streams

January 5, 2016 — January 5, 2017

computers are awful
concurrency hell
javascript
UI
Figure 1

Stream processing for javascript. This is not rocket science, but there were enough options that I needed to make a new notebook just to choose. See also this intro to reactive programming from a javascript perspective.

Question: why are there not more visual pipeline programs for this programming domain? It looks like an obvious fit.

1 libraries

  • Rx.js is the Microsoft one, which I use myself. See rxjs.dev/. It is well documented, unlike its competitors, but often seems over-engineered.
  • highland was popular for a while but seems to be a little less frenetically active.
  • kefir also tries to be minimal. See home page.
  • Of course, there are more. Why not bacon.js?
  • task.js seems to be a coroutine-like hack for JS generators by Mozilla.
  • Node.js has (maybe?) a front-runner coroutine implementation, node-fibers, which might be ok.
  • There is a parallel universe system called observablejs which combines some features of FRP and some of javascript visualisation and UI.

2 Elm

A whole language that somehow interoperates?

3 interoperation

  • Fantasy land is a specification for algebraic structures in Javascript which happens to provide interoperation between the below libraries.

  • transducers.js is an actively developed library of transducers for javascript (source code).

  • The incredibly-similar-and-similarly-named transducers-js also works.