Проблемы, с которыми вы сталкиваетесь, обычно возникают, когда вы используете чертовски много разных библиотек вместе.

Angular, с другой стороны, является полностью самоуверенной средой разработки или даже платформой.

В Angular 2, например, есть angular-cli, который избавляет от объединения множества js-инструментов, таких как gulp, babel, browserify и т. д.

AngularJS или Angular 2 лучше подходят для бэкенд-разработчика, так как вам не нужно знать другие инструменты js, и они очень хорошо работают с бэкэнд-языками. Мы (я и мои коллеги), например, используем Symfony с AngularJS таким же образом, как мы создали повторно используемые компоненты с комбинацией Symfony и AngularJS. Если бы мы использовали какую-то другую библиотеку (независимо от MVVM), нам пришлось бы изучить множество js-технологий (flux или redux, requirejs или commonjs, babel, webpack, gruntjs или gulp, browserify, es6 или coffee script или typescript, некоторые nodejs , и т. д.) в дополнение к основной библиотеке (скажем, реагировать) и все еще не уверены, сможем ли мы создать компоненты, как мы сделали с angularjs.

И я должен сказать, что разработчикам с другим опытом никогда не стоит внезапно переходить к разработке js, а также к фреймворку, который еще не является стабильным.

Странные части js — это его лучшие части, но нужно время, чтобы вникнуть в них.

Как только вы войдете в это, вы никогда не оглянетесь назад, вы не бросите это.