I think the Java community has done something really amazing here. As a C# fanboy it's hard for me to admit, but while reactive extensions have been in the C# ecosystems for much longer - it seems like a wide variety of vendors lined up backing Reactive Streams in Java in their drivers (where there aren't a lot of vendors backing up their kind words with an Rx implementation in C#). Nice work.
I remember seeing a talk on this around a year ago, and while it did have some important backing and solve some interesting problems, there wasn't much in terms of examples of people using it in production.<p>Is this still the case? I guess with it hitting 1.0 it's more likely now, but I'd still be interested to hear if anyone's had much experience with this up until now.
While this looks very interesting, and I'll probably push for using it in production shortly, I can't help but wonder what some of their marketing talk even means.<p><i>non-blocking back pressure</i><p>How does that even relate? All I can think of is sticking a potato into a car exhaust.
This is a great vision, but without trying to be a jerk, I have to wonder: isn't this just a restatement of what Erlang/OTP has been doing for at least 20 years? I haven't learned the language yet, so it's a serious question.<p>And if you want "Erlang validation" it's hard to beat WhatsApp's $19B acquisition. (I doubt that Facebook will be releasing any open source Erlang code any time soon!)<p>So what's the deal? If you believe in the <a href="http://www.reactivemanifesto.org/" rel="nofollow">http://www.reactivemanifesto.org/</a> wouldn't you be better off just biting the bullet and learning <a href="http://www.erlang.org/" rel="nofollow">http://www.erlang.org/</a>?
v1.0.0#specification reads:
> Or another implementation could fuse the operations to the final consumer:
> nioSelectorThreadOrigin | map(f) filter(p) consumeTo(toNioSelectorOutput)<p>Having control over how to fuse a chain of functions is very interesting. Do any of the implementations allow use of mutable state when fusing a chain of functions with the same signature.