to kwestia preferencji. żaden nie jest lepszy, jest jedynie częściej wybierany.
znam ludzi, którzy rozpoczynają pół godzinny wykład o wyższości angulara jak tylko zobaczą kawałek JSX-a
znam ludzi, którzy będą hejtować angulara jak tylko zobaczą, jakieś "ng-"
OSOBIŚCIE nie lubię w Reactie tego, że nieraz trzeba mocno przekombinować rzeczy, żeby uzyskać jakiś tam efekt, chociażby renderowanie modali przy utrzymaniu deklaratywnego programowania jest trudne, Redux w połączeniu z Reactem też powoduje, że kod pisze się wolniej (niemniej "single source of truth" jest bardzo fajnym rozwiązaniem). Redux na vanilla js jest ciut prostszy
Angularowi (1) mogę zarzucić brak jednolitości. Framework ułatwia pisanie niedbałego kodu. Raz zmienną ze scopeu przestawisz bezpośrednio w templatce, raz wywołasz funkcję, która ją zmieni. We dyrektywach czasem sobie podepniesz ng-class i cała resztę angularowej magii, czasem napiszesz coś w pure js, bo ... tak będzie działać szybciej. Aplikacje szybko stają się ciężkie i niefajnie je optymalizować
Angulara 2 mało znam, kod tylko widziałem parę razy i robiłem review, nigdy nie uruchamiałem. TypeScript jest zdaje się dobry w teorii, w praktyce zbyt często widzę any. Jakieś śmieszne problemy były z nowym bindowaniem zmiennych (coś z a href, którego nie dało się wpisać statycznie), ale nie jestem w stanie Ci teraz powtórzyć dokładnie. Sam fakt istnienia Angulara 2 jest dla mnie dobrą przesłanką by nie ufać "jedynce" i nieufnie patrzeć na dwójkę
Ja osobiście siedzę w obozie Reacta.
A Reduxa jako menedżera stanu możesz też używać w Angularze ;)