Hacker News new | ask | show | jobs
by alipang 4789 days ago
Bacon/Rx allows you to work with an event stream abstraction, which assigns responsibility quite differently.

Bacon is more like excel in the sense that a cell defines /itself/ in terms of other cells

    A1 = B1 + C1
or in Bacon

    var as = bs.combine(cs, (b,c) -> b + c)
The style in ko/reactor is often inverted. One opens a 'bus' or 'signal', to which an arbitrary set of others push values.

    var as = Signal()

    function bs() {
      as(...) // push value
    }
Of course, the point of Bacon is that Rx.js does not quite define an event stream abstraction, as it has the (kinda weird) distinction between hot and cold observables which can be way surprising.