And this is coming from someone who was really excited for 2.x (and TS for that matter) but has resigned to probably staying with 1.x and es5/6 for the foreseeable future.
I think this architecture is an awful way to go, and I have no idea how it has become popular.
2. If you do have a tabs reducer, it should be considered part of your tabs component. Use a good boilerplate that sets it up that way, like https://github.com/mxstbr/react-boilerplate
> I find flux to be a really bad way to organize an application.
But there's no denying that if you go to a web/js meetup in just about any city in the US 8/10 talks will have something to do with React, and that's the position Angular was in 3 years ago. Doing silly things like maintain 2 frameworks with the same name isn't going to help.
AngularDart's play is not to be the next React (the same way Go is not trying to be the next PHP). AngularDart users at Google are, to my knowledge, extremely happy with the framework, but their enthusiasm won't necessarily (or even probably) translate to large portions of JS crowd. AngularDart works for a specific set of problems (very large web apps that need to be performant and work well on mobile, built mostly by developers with classic CS background).
I personally think insisting on the one framework (Dart+JS+TS) was the silly thing to do, and I'm glad that's over.
Angular-Meteor supports both 1.x and 2.x, and Meteor's build pipeline has us writing angular code in ES6 that is on the cutting edge of 1.x and looks very similar to 2.x without actually being typescript.
The Meteor and Angular-Meteor teams are both really great, really quick response times to issues and combined have a really great ecosystem that helps bridge the gap between traditional angular libraries and the Angular-Meteor stack.
However 2.x support in Angular Meteor is slightly different then the bleeding edge of 2.x from the Angular teams. Last I checked their are a few shims and it is also incompatible with a lot of third party meteor and angular-meteor libraries. Furthermore switching to 2.x would require a decent amount of refactoring, not necessarily because we'd HAVE to refactor it but because if we did refactor we'd want to take advantage of as much of 2.x as possible which would require rewrites.
Finally I don't really like Typescript. I think its advantages over ES6 are marginal for most small or medium apps. Having to refactor Es6 -> Typescript and 1.x -> 2.x seems like a lot of work to me, especially because 2.x will have the growing pains of being bleeding edge, meaning fewer stack overflow answers and a much smaller ecosystem.
For a new side SPA project where I could write a custom build system via Gulp I would probably write it in 2.x, or maybe try out React. But I still wouldn't use it for a new production app because I see too much added complexity that would diminish the productivity I've already built up in 1.x.
Oh and then the only effect it has on end-users is slightly faster performance. You can argue for weeks over the value of this, but for us it's fairly marginal. Our app doesn't render tons of rows or anything that is slow to begin with, so it would almost have no affect on them whatsoever.