Closed mhelvens closed 9 years ago
It's a little hard to answer as I haven't closely compared Bacon's implementations to Kefir's. For what I know:
prototypes
, while Bacon often creates methods for each instance. But this probably more affects memory footprint than performance..debounce
: @flatMapFirst (value) -> Bacon.once(value).concat(Bacon.later(delay).filter(false)))
. While in Kefir most methods implemented without intermediate observables between source and result.concat()
function instead of native Array::concat
and so on.About what we sacrifice, I think there is only one feature that aren't implemented in Kefir in particular because of performance penalty — atomic updates. But it's not only about performance, it also pretty tricky to do right. Maybe Kefir will get this one day. (RxJS also doesn't have this, btw :)
Closing this, but feel free to continue discussion.
This would be something for a FAQ
section or comparison overview. Pretty good insight. Thank you!
I've seen the tree demo. Quite impressive. I'd be curious to know what makes Kefir.js fast / Bacon.js slow.
What do Kefir users sacrifice for this increased speed, if anything?