Great writing! I understand the pain points you talk about. I have been using the framework for a couple of years now and I agree it does have design flaws that don’t make it a my choice for building large scalable application.
The place where I believe angular fits well is when building quick ui prototypes and small apps. Because that was the purpose it was meant to fulfill when it was conceived almost 6 year ago!
Yes, you can build large scalable applications using AngularJS, there is no denial. But I have found that there are better alternatives that have a more flattened learning curve, have less pitfalls, and don’t create their own jargon changing concepts you already know.
To those that state that MVC is still a good pattern for ui… well as Martin Fowler states in this essay :
“I’ve lost count of the times I’ve seen something described as MVC which turned out to be nothing like it. Frankly a lot of the reason for this is that parts of classic MVC don’t really make sense for rich clients these days.”
And AngularJS is one of those.
I have found that Flux from React, MUV(Model-Update-View) from the Elm language and Cycle from Cycle.js do offer a better and comprehensive alternative for UI and general application development architecture.
“If a feature is sometimes dangerous, and there is a better option, then always use the better option. “-Douglas Crockford