This seems to be a pretty old question. Personally I feel that React + Redux + Fetch (or Axios) give you all that you need that you would get from Angular. I find that React works more tightly with the greater JS ecosystem, while the Angular team seems fixated on fighting against it.<p>I feel that I'd rather have JSX (with a few gotchas that make a lot of sense) using straight JS constructs over weird templating DSL that you get from Angular, and changed in Angular 2+. I don't think it's merging concerns so much as separating them in a way that makes more sense.<p>I do think that redux/flux-like structures are harder to get started with, but they scale linearly compared to what is common in Angular projects. Some of the binding in Angular in particular is pretty hard to deal with, and side effects and the fact you need to know about $scope.$apply in the first place doesn't help. With ng2, now you have constructs out of RxJS that you have to understand to be effective in some areas.<p>Angular was born in a time before CommonJS modules were popular, or module loaders, or even npm. That said, the rest of the JS world has moved on, and Angular 2 isn't enough to overcome.<p>IMHO React is a <i>much</i> saner approach to testable components, and have meaningful errors that actually help. The WTFs are few and far between, and totally make sense in context. With Angular, there were far more WTFs and most of the time you didn't get any meaningful errors at all, it just didn't work right.<p>Most of my problems with Angular 1.x are better in >= 2, but by no means all gone, and I just don't think the team "gets" what is desired in terms of support outside TypeScript.