+100 to Ben G's reasoning.
I realize that "+100" doesn't add substance. It *does* mean he has company.
I keep hearing many of you say that promises are inadequate most of the time. That flies in the face of a huge number of very successful deployments out there.
It is blindingly obvious just looking at the body of existing apps in the wild that a single, cold response - a promise response - is exactly what we need most of the time from our client/server HTTP interactions. "Get me the Customer with Id = 42". That is an unambiguous request for a single response. Once I have it, I have it. I can pass that resolved promise along and its value will be immediately available. I don't risk another turn or an unwanted trip to the server.
This is the bread and butter of application HTTP requests. I don't see this changing very much for the foreseeable future. I DO see more push interactions in the near future ... and these are perfect candidates for observables. But HTTP? Seriously?
The retry/cancellation critique is a red herring ... as Ben G. explains. For the record, retry and cancellation with promises is something we've long known how to do ... when we've needed them. The real problem has been knowing when, why, and what to do when cancelling/retrying. Those are much more difficult issues ... issues that *observables do not solve any better than promises*. What is the program supposed to do when the user cancels? Aborting is not always the right answer. Why bother retrying if the connection is broken? How often do you retry? Do you progressively delay the next retry? These are not questions whose answers turn on whether you use promises or observables.
Promises are far easier to explain than observables .... straight up. If you took people who knew neither, you could be sure they'd learn promises before they got anywhere with observables. This "experiment" has been tried many times already in the real world over the last few years. We know that promises are widely understood today ... especially within the Ng community ... whereas Rx has had pathetic traction.
Let's also get real about Angular's ability to change the world. Angular played a very small (and belated) role in teaching promises. Angular v.2 may well encourage learning of observables and Rx principles. But we should practice some humility. Let's not exaggerate the Angular Elite's ability to overcome the resistance to Rx when so many others have failed.
Most importantly ... we have to bring the Ng v.1 community with us. ***That community is already pissed off about Ng 2***. We should not blithely add to the discontent by forcing yet another difficult paradigm down their throats.
Finally, I want to reiterate that ... **like Ben G ... I am in favor of observables in Ng. 2.0**. I am a fan! I love observables! Can we just stipulate that?
My argument is that we can't force observables on the Ng community. They're is no valid reason to do so. And they will hate us for it. We can and should offer both.