Second and worst of all - it is a monolithic framework. As long as you just do things the "Angular Way" - you are fine. If you want to change or override something, you are in a world of pain.
If you are learning Angular - you are hardly learning JavaScript. The knowledge learned from it is hardly transferable to the next framework down the line.
To me it looks a lot like SOAP. Everybody is acting like they understand what is going on. But nobody really does.
We have had shit like this circa 2005 - when jQuery started hitting the mainstream.
And monolyths had to cede their ground to small specialized frameworks that would be built for fast deprecation and mixing with other stuff. Sort of the UNIX way.
Angular is causing just as much damage as GWT, ASP and others did in their day. IMHO.
No I haven't and will refrain from doing so. Although I am tempted to invest more of my time in it, because I can smell some phat consulting opportunities from everybody and his dog having a big, slow, badly architectured Angular app and searching for an "Angular Expert" to help them get their shit in order.
However I am not ignorant about it I have invested nearly a month into it and worked on implementing my usual TODO Demo App, which I gave up on eventually, because it became clear to me that it has nothing to offer that I would want from it.
2: What do you need to do in the front end that can't be accomplished the 'angular way'? I'm not sure you understand what monolithic really means. The beauty part of angular is that you can use it as little or as much as you'd like in your web applications.
3: Angular 2 is going to be preeeetty much only ecma6. Also, understanding angular means you understand AMD, digest cycles, etc... totally applicable to other frameworks.
4: What are you even talking about?
Regarding your other statements - you are saying the same things I am. I can do everything I could do otherwise, just at the expense of a lot of overhead I would not have if I didn't use Angular in the first place.
[1]: When it materializes.
Edit: > understanding angular means you understand AMD This is a load of bullcrap. __Nobody__ understands AMD, it is a cargo cult. Just like the SOAP was. And yes I think Angular (in its present form) is a cargo cult. That's what I meant with the SOAP thing.
For the record I use RequireJS on pretty much every project nowadays, but not because I like it - merely because my clients want to use it.
Why in the world would you say that
To address your comment about knowledge not carrying over to the next framework down the line, what framework isn't like this? You always spend time learning the nuances of a framework that are never transferable.
Are there non-monolithic frameworks? I believe that's the main value proposition of using a framework: you don't need to think about how to organize things because it's the framework's job to provide you with square and round holes, all you have to do is provide the square and round pegs. I am not saying that framework is better than N libraries. I am saying that that is the framework's value proposition. Honestly, I tried helping someone with a Backbone project a while ago. The first thing you have to do when using Backbone is apparently learn a dozen or two of really random names (I swear JS project names are generated as `englishNouns[randInt(englishNouns.length)]`).
The knowledge gained from using Angular is as transferrable as the knowledge of jQuery: it's not straight JS, but if you understand what it does under the hood you can switch to a different library rather quickly.
Lastly, Angular has something that many other frameworks don't: a commercial backer. This means that it's not likely to just bitrot on GitHub for years when the original author loses interest.
Google's track record is hardly impeccable in this regard.
Bootstrap is not the "open web stack," whatever that is supposed to mean. And it's a little amusing to hear that the past six months I've spent using Bootstrap in Angular didn't actually happen.
> If you are learning Angular - you are hardly learning JavaScript.
Of course. But nobody says, "Hey, learn this Angular thing, and then you'll understand JavaScript." You must know JavaScript first, and learn Angular second.
I am curious what you consider to be the open web stack and why you think that Angular is not "compatible" with them. In my mind, it includes things like Linux, Apache, possibly Nginx, MySQL, languages that begin with a "P" and some other letters, etc. None of these remotely have incompatibilities with Angular. You want to sprinkle in some jQuery with Angular on the front-end? That's fine too, if you want.
As for moving off of Angular causing a world of pain, the same could be hypothesized as likely if moving from any set of patterns to a new set of patterns. I would not discredit it for providing a set of patterns, it is a framework and that is the point. Also, as for learning Angular versus learning JavaScript -- the same goes for most frameworks. You can learn the framework, and you can also learn the underlying, lower-level details that implement the framework. The two are not the same.
Doesn't work with Bootstrap? What? Sure it does. You can use any CSS classes you like, and as for the Javascript components, although not necessary there are even these native directives from the AngularJS team to make things easier:
http://angular-ui.github.io/bootstrap/
I am not going to touch your last statement. :)
That having been said, the criticisms about it being an enterprise framework that's hard to move off of are spot-on. But lots of people prefer a one-stop solution to cobbling together an open stack---less flexibility, more out-of-the-box functionality.
I'm also confused how something like that is a top comment on HN and makes me wonder what is so different about me and the everybody else who felt the need to upvote that comment.
Makes me think back about that dev Klabnik made cry after making fun their open source project. I can't get over that last sentence of kuni-toko-tachi's comment.
> There is simply no way that you can say that you know Javascript and at the same time support Angular. None.
How does someone say something like that and not feel like an asshole afterwards.