Now what is wrong with this bullshit
1 - He basically said templating is not “real development”. Yet we use it since the early days of the web ! Doing the databinding on the JavaScript side is not easier, it is a real pain to get and maintain the right selectors. What do you think ? You’re not going to work on HTML, because you’re a “real developer” ? Dumb
2 - No it is not. User inputs are generally all specified and under control, so it is a precious time & code saver instead of plain old listeners. Also, every binding is optional & configurable on Angular
3 - Because he thinks a total abstraction of the DOM and diff calculation is faster and better for battery ? I'm not sure if he really knows how React works
4 - Of course you have to change the view and the controller if its a new feature ! What's wrong with that ? It is called separation of concerns, and a far better idea than putting everything in the same place
5 - Angular is fast enough to get really nice demos with Ionic on my lowcost smartphone. And Angular 2.0 will be even faster thanks to Object.observe. Also, what is the problem with HTML parsing ? That's the number one feature of every web browser
6 - Isomorphic websites is a nice concept to try to fix issues with obsolete browser support and JS-unaware crawling bots. Angular is made for _modern_ platforms
7 - The evening I started to learn Angular, I made a basic chat application and a tic tac toe game. When I learned Ember, it took me two days to make a recipe book application, and at the end my code was crap. Angular is excellent to quickly have working demos. I agree the next "industrial" step is quite more complicated.
8 - What is wrong is thinking that a single framework should be suitable for every web application in this world
9 - Open source ? Giant community ? Hello ?
10 - this complete refactor is a great thing for Angular and will make previous points even more inaccurate than they were already.
I'm not an "ngFanboy", I use Angular beside others (Backbone, Knockout <3). Sometimes I do not use any framework at all and it is fine.
Man did you go off and rant... some points to make: angular templating is logic filled compared to say something like mustache templates which are not, why do i need logic in HTML and in JS ? two-way databinding is majority of the time unnecessary, heck they even brought in one-time binding which should cue you into something *performance*. Isomorphic is great way to re-use code ie: your templates again or a http/xhr service that can be used client and server think what meteor is doing. The re-factor or 2.0 won't be available for a while.. so cant use that argument
The level of logic to put in the DOM is debatable, we have full-logic solutions like EJS and logic-less like PURE, both approaches are valid depending on the project. If you think 2-way databinding is majority of time unnecessary, that means it is necessary sometimes, so why criticize Angular if it offers both ? And about things which are unnecessary majority of the time, you were talking of isomorphic ? Finally the refactor argument is not mine, I only reply to those used in the article.
Isomorphic promotes the re-use of code on the client and server.. instead of writing 2x the amount of logic services. So I'm not sure I follow your comment about it being unnecessary. Angular 1.3+ only introduced one-time binding after realizing that watchers and digesting all of those watchers is a performance issue prior to that you had to use a third-party library such as bindonce or not use it altogether.
The major problem with angular is the fact that it is a kitchen sink framework, you cannot use a piece of the framework without inheriting the whole thing. Personally I prefer flexibility.
unnecessary _most of the time_, necessary sometimes. JavaScript on the server is still in its early days, maybe some future isomorphic solutions like Meteor will change the game. That's what I meant on point 8.
I agree about flexibility, and the Angular team is listening. Check out Angular 2.0 goals : "For performance and to enable innovation, our goal is that almost every piece of AngularJS should be optional, replaceable, and even used in other non-AngularJS frameworks. You’ll be able to pick and choose the parts you like and write or select others that you like better."
Hmm we use nodejs currently and works great for us, despite it being in the "early days", meteor is a full-ledge solution.. Im talking about using modules from NPM that can work on the server and client today, right now.
Angular 2.0 is still in the design and architectural phase, maybe in the future it will be released but who knows exactly when.
These are some of the concerns and issues I had while working in angular, too. I think this post is needlessly aggressive, though. Angular was really nice for simple things, but the larger the application got the harder it was to wrestle with.
I wouldn't call it "needlessly aggressive", I think he's voicing his frustrations and if that is the tone that is set.. so be it, he shouldn't have pull back and sugar coat anything. Angular was meant to be used in larger situations rather than pet projects but you are correct it becomes something thats need to be wrestled especially if you are not build from ground up.
Re #8: "Maybe it’s because both Gmail and Gplus was released long before Angular hit stable? Do you expect them to rewrite everything into their new framework if they already have a highly successful app?"
What's wrong with Angular.js ?
[1] It's just another framework to solve a problem in the wrong way.
Learn to use javascript, understand HTML and the DOM and you are ready.
... and if some people say that with no framework you will end up with spaghetti code... listen to them and make sure you endevaour to write maintainable code...
There is no framework to hide the complexity from writing good maintainable code
You know what happens when you don't use a framework to build apps? You end up with your own!
I agree, with any abstraction you have some complexity especially when you try and solve everyones application development needs.
I wonder that as well. I actually quite like Angular and I voted the entry up! I did so because I want people to be exposed to the replies to the article, so they may see how easily debunked the original claims are (see first post). He may have had some valid points, but if you write a "10 things" list and one of the reasons is that "Gmail doesn't use it" it kinda debases the credibility of the author pretty quickly. So if you voted it up as well: thank you!