I work at Google, and have been using AngularJS in different projects for about three years. The OP raises a couple of good points (in particular his "The Bad Parts" are mostly valid), but I cannot understand some others, nor do I share his take away.
AngularJS is not a silver bullet or panacea. It has bad parts such as the directives API (making it hard to create reusable components), the global namespacing in the injector, and indeed, the number of watch expressions is an issue.
That being said, internally at Google:
- we do have well working, shared, reusable UI components based on directives. So it's quite possible to write usable AngularJS modules.
- There are multiple old (>3 years), large AngularJS apps that do not seem to have major maintenance issues. Maintenance of large code bases (>100k SLOC JS) is always an issue, but if you follow the style guide [0] at least it doesn't seem worse than with other JS frameworks
- Code is minified and compiled, using Closure Compiler's @ngInject and @export annotations as required.
OP's comments mostly sound like they were burned by not following software development best practices (e.g. throw the prototype away, make sure to properly design your domain model, have a qualified tech lead, have qualified engineers).
His "Lessons for framework (and metaframework) developers" seem generally useful, but unrelated to particular AngularJS shortcomings.
This is in an established corp (best practices, standards, workflows etc) - you could build things out of mud and they would still hold. Doesn't say much for/against this particular framework..
AngularJS is not a silver bullet or panacea. It has bad parts such as the directives API (making it hard to create reusable components), the global namespacing in the injector, and indeed, the number of watch expressions is an issue.
That being said, internally at Google:
- we do have well working, shared, reusable UI components based on directives. So it's quite possible to write usable AngularJS modules.
- There are multiple old (>3 years), large AngularJS apps that do not seem to have major maintenance issues. Maintenance of large code bases (>100k SLOC JS) is always an issue, but if you follow the style guide [0] at least it doesn't seem worse than with other JS frameworks
- Code is minified and compiled, using Closure Compiler's @ngInject and @export annotations as required.
OP's comments mostly sound like they were burned by not following software development best practices (e.g. throw the prototype away, make sure to properly design your domain model, have a qualified tech lead, have qualified engineers).
His "Lessons for framework (and metaframework) developers" seem generally useful, but unrelated to particular AngularJS shortcomings.
[0] http://google-styleguide.googlecode.com/svn/trunk/angularjs-...