I found Angular to be almost trivial (even more trivial than, say, Ember, due to being more explicit), except for a bit messily structured documentation and the constant need to monkey patch or duplicate some internals to make them do the right thing (like removing broken sanitization with ng-bind-html, etc.)
Can you read and understand AngularJS source code? can you explain in detail how does the digest cycle works ? and how datas are updated during this cycle ? if yes congratulation , if not , stop saying AngularJS is trivial ,it is not, past the exemples on the homepage. Doesnt mean it's a bad thing , but let's call things "trivial" when they are not.
Bingo. That is kind of my benchmark of "should I use this?". If code is too arcane and hard to understand (especially when docs a slightly lacking) I usually pass it up.
It could reflect on my density and stupidity (can't read code too well) but so far I've had good track record.
I tried understanding and learning Angular.js but got lost in directives, dollar-sign prefixed identifiers, services and other custom terminology.
One way to make sense of it is to look at the source, and that was pretty painful.
Anyway so far it fails my smell test so I'll pass it up. Maybe later will revisit.
Very good point. The terminology is exactly the thing that's (in my opinion) is weird with Angular.
When I had a first glance on it, I didn't really get it. Only after several hours reading the docs and experimenting with code I got what they were talking about things became somehow clear (lots of aha-moments "ahh, the service is just a fancy name for an angular-managed singleton, now I see...").
Scope.$digest is 100SLOC long, about a half of which are variable declarations, closing brackets and comments. I think, anyone capable of reading and comprehending normal non-obfuscated JS code should be able to understand what's going on within an hour at worst.
This is certainly not a trivial part of the code (tree traversal is a bit obscure, they even have comment that it is; it probably could be much nicer if JS would really had graph handling in the standard library), but certainly not "hard as hell", it's more likely "if you need to understand this (as if something goes wrong or works in an unexpected manner), you have to spend some time to get how internals actually work".
I have seen the code that is very hard (if not nearly impossible) to understand without some special knowledge. Angular, in my opinion, is not even remotely close.
The thing is that if you've ever built anything significant in JS, you're going to have a couple war stories and 'easy' is the last thing that you'd call the stuff.
Obviously, I had such stories where I had spent many hours doing what I wanted in a manner I wanted it to do. For example, I had problems with content transclusion and had to dig relatively deep into the source code to figure why I'm not getting what I believe I should. Software without bugs is nearly non-existent, and Angular is still not very mature in some aspects.
But in overall, Angular is very easy - after you spend a day or two toying around, groking the terminology and core concepts. Way easier (in my opinion) than, say, Sproutcore (which I found too complicated to my tastes to invest time learning).
I think drdaeman meant trivial to use / learn. Like Google search, an incredibly complicated system that's trivial to operate. (Also I sometimes read the AngularJS source when I'm stuck reading the documentation, to be fair it's pretty easy to grok, I submitted my first little pull request a couple of hours after getting an idea.)