ReactiveX / reactivex.github.io

ReactiveX Website
Apache License 2.0
139 stars 138 forks source link

The "Computer Science" Explanations #25

Open benjchristensen opened 9 years ago

benjchristensen commented 9 years ago

I think reactivex.io site deserves the @headinthebox treatment with a few sections walking through the theory and computer science of Reactive Extensions. What do you think @headinthebox ?

Thoughts on topics:

I would like for www.reactivex.io to be the definitive source of truth for these topics in relation to Rx rather than blogs, whitepapers, comments and wikis all over the net.

staltz commented 9 years ago

Would be also good to fit in somewhere (maybe as an FAQ?) a definitive answer to the "Is Rx Functional Reactive Programming?" confusion.

headinthebox commented 9 years ago

Yeah, should do that.

@staltz, since the very beginning of Rx, I have tried (in vain) to explain that the principles behind Rx are totally different from those of FRP (http://csl.stanford.edu/~christos/pldi2010.fit/meijer.duality.pdf). I have been familiar with FRP since the mid 1990-ties, and I designed Rx on purpose to put (discrete linear) time in schedulers and not have any notion of time in the model. So, I really don't like it when people call Rx "FRP" because it isn't. Dually, we should respect Conal Elliot who pioneered FRP (http://conal.net/blog/posts/why-program-with-continuous-time)if we call anything that is not based on continuous time (http://conal.net/blog/posts/why-program-with-continuous-time) FRP.

staltz commented 9 years ago

I agree... when I wrote about Rx being FRP, it was in ignorance. I guess even Ben did the same mistake in the past. Others might do the same, so we need a bold and clarifying statement on reactivex.io, I guess.

benjchristensen commented 9 years ago

Yep, it was indeed ignorance on my part as I figured "functional composition" + "reactive programming" is what was meant by "functional reactive". I still think it makes sense, just unfortunately the term is already used to mean something different.