> Whatever the reason is for Angulars popularity, it isn’t that it’s a great framework.
Anything that makes programmers productive is a great tool. Angular 1.x definitely makes teams productive. It's one of the first web framework that comes with a specific testing framework. The clear separation between the DOM and the business logic makes apps more testable. And I could go for hours. Angular helps developers write complex apps faster and better.
Sure it isn't perfect, but show me something better with all the features AngularJs has.
AngularJS didn't became popular because it was from Google, a simple proof is the closure widget library nobody uses outside google. AngularJS became popular because it was obviously superior in term of developer experience.
Now your point about ng-model and scopes is valid.But it's not a angular problem, it's a javascript issue.Ultimately to understand angular you need to understand how javascript works, which many develpers don't.
Instead of saying "this thing is bad", Educate them. But I guess sensationalism drives more clicks.
I got tons of both hate and love for that blog post. One of the few criticisms that I can accept is the "The problems are real, but don't matter that much." view. I don't agree, but I suppose people can have different experiences there.
Any 'sensationalism' comes from legitimate anger with the framework, after having spent over a year working with it on a large project.
> Now your point about ng-model and scopes is valid.But it's not a angular problem, it's a javascript issue.
This I don't agree with. Yes, JavaScript has prototypical inheritance between objects, but certainly not between scopes. It has lexical scoping like everyone else. The decision to have scopes be objects that (sometimes, not always) inherit from one another, is entirely on Angular. So is the decision to have ng-model silently create objects on this scope.
Most people don't understand directives, so they resort to a pub/sub communication model that makes the web page unable to scale when you have too much items that are binded/coupled on a page.
No optimizations are possible for an exponentially resource greedy problem.
>Anything that makes programmers productive is a great tool. Angular 1.x definitely makes teams productive.
Definately? Based on what? The teams i've seen and projects i've been on that use Angular take much longer and end up with slow, buggier code.
>Sure it isn't perfect, but show me something better with all the features AngularJs has.
Meteor, Ember, React, Qooxdoo, Extjs, Backbone, etc... pretty much every other framework. Most of them don't specify a half-baked programming language hiding in data attributes in your dom-nodes.
>AngularJS became popular because it was obviously superior in term of developer experience
That is a lie. Angular seems to attract back-end programmers who have been moved to the front-end because it uses design patterns that are more common to back-end development. Find me a single Angular fan, that has actual job experience with at least two other SPA frameworks.
>Instead of saying "this thing is bad", Educate them. But I guess sensationalism drives more clicks.
You are misrepresenting his blog post, mostly out of spite.
Here's a more generic complaint: doing control-flow by annotating dom-nodes dom just means you lose proper debugging, refactoring, scoping and not to forget: hurts performance (since dom reads are much too expensive).
Angular is one of the worst executions of a fundamentally flawed approach. The only people defending it are those who are not familiar with _any other alternative_.
Well you didn't disprove my assertion (I was obviously talking about front end frameworks) by citing a front end framework that came with an extensive testing framework. So why on earth are you saying something without backing it with facts?
> But it was definitely helped that it was so heavily promoted by Google
I started using AngularJS in 2011 it had 0 promotion from Google. It wasn't even a Google product at that time.
> Again...what? JavaScript doesn't have `ng-model`...Angular does. It's an Angular problem through and through.
No the problem is that Javascript doesn't have pointer variables,therefore when using variables in a scope you need to use object properties and not objects directly if you want to refer to it in the outer scope. It has nothing to do with angular but everything to do with the way Javascript works.
>Well you didn't disprove my assertion (I was obviously talking about front end frameworks) by citing a front end framework that came with an extensive testing framework. So why on earth are you saying something without backing it with facts?
Let me help settle which of you two is the liar then.
Ember comes with tooling for unit-tests and so does Qooxdoo (which also includes Selinium support out of the box).
And that's just two of three i'm familiar with.
>No the problem is that Javascript doesn't have pointer variables
There you go: pass-by-reference semantics (i.e. pointer variable)
var flow = function( init ){
return function( v ){
if( v !== undefined ) init = v;
return init;
}
}
> It has nothing to do with angular but everything to do with the way Javascript works.
No, it has to do with the ad-hoc programming language shoehorned into dom-nodes. Javascript has lexical scoping, Angular does not, because its control-flow lives in your dom. It also doesn't have encapsulation or proper step-debugging this way. But none of that has anything to do with Javascript. If all that logic lived in a .js file lexical scoping would be possible and recommended.
Anything that makes programmers productive is a great tool. Angular 1.x definitely makes teams productive. It's one of the first web framework that comes with a specific testing framework. The clear separation between the DOM and the business logic makes apps more testable. And I could go for hours. Angular helps developers write complex apps faster and better.
Sure it isn't perfect, but show me something better with all the features AngularJs has.
AngularJS didn't became popular because it was from Google, a simple proof is the closure widget library nobody uses outside google. AngularJS became popular because it was obviously superior in term of developer experience.
Now your point about ng-model and scopes is valid.But it's not a angular problem, it's a javascript issue.Ultimately to understand angular you need to understand how javascript works, which many develpers don't.
Instead of saying "this thing is bad", Educate them. But I guess sensationalism drives more clicks.