, Richard.Hein wrote

*snip*

 The limitations of C# is the problem with Rx, not Rx, in terms of complexity, as managing continuations seems to be a problem for large Rx compositions, as the number of arguments grows.  The code is inside out, but this is a simple matter of experience to grok, and everyone is capable.  

I wouldn't call it a limitation as much as "prior art". C# has for the best part of a decade been imperative. Resistance to Rx is solely based on its IoC, which is what a lot of people find hard about dealing with the IAsyncResult, Begin and End style programming when dealing with asynchrony. Once you start using ManualResetEvent and WaitHandle peoples heads start hurting, then I would interject that Rx semantically has similar issues with complexity.

Rx has this real/perceived level of difficultly that is a barrier to entry because a lot of people plain don't like programming this way. I have seen some brilliant implementations of Rx in programs, and would use it after choosing wisely, the problem with a lot of developers is that they are more concerned with just using it for a problem (because its new and cool), rather than really identifying whether it is the best tool for the job.