I've done a couple of ng2 apps, and I think I could do more with it... that said, I still feel that React + Redux + redux-thunk and fetch gets you most of the way there, with material-ui or react-bootstrap being a great starting point... yeah the tooling isn't as flushed out, and there's some boilerplate... that said, jumping into an app is so much easier than ng2. (and imho ng1 as well).
I've talked a few people out of going with ng2 for new projects... it just isn't worth the trouble.
As for DI (from gp), what's wrong with require/import and testing using proxyquire?
I'd love to see babel and webpack more closely integrated... I mean a lot of the heavy lifting on one end is already handled by babel, if the bundling could be done as an extension to that tool, it would be great imho.
Interesting approach, but I think it's coming up on too much magic, which in the end will make things too hard for someone new coming into the project.
I find that I can get done more in a few hours of flow than a lot can get done in a week. But I'm lucky if I get the chance to hit flow 2-3 times a week given interruptions and meetings.
I keep thinking that a lot of the additional methods that bluebird offers should be added to Promise for esNext...
On the flip side, Promise is available in all modern browsers, so it may be better to keep to the standard API.
The first code sample has a lot of unneeded redundancy to begin with. Also... `this.foo()` is not more readable than `foo()` and you're creating an object context for no value add and complicating testing.