Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Angular: Just Say No

Angular: Just say no

A collection of articles by AngularJS veterans, sometimes even core committers, that explain in detail what's wrong with Angular 1.x, how Angular 2 isn't the future, and why you should avoid the entire thing at all costs unless you want to spend the next few years in hell.

Reason for this: I'm getting tired of having to explain to everyone, chief of which all the indiscriminate Google Kool-Aid™ drinkers, why I have never believed in Angular, why I think it'll publicly fail pretty soon now (a couple years), and why it's a dead end IMO. This gist serves as a quick target I can point people to in order not to have to parrot / compile the core of the articles below everytime. Their compounded reading pretty much captures 99% of my view on the topic.

This page is accessible through http://bit.ly/angular-just-say-no and http://bit.ly/angularjustsayno, btw.

@shingara

This comment has been minimized.

Copy link

shingara commented Jun 7, 2015

Same idea about all js framework or you advice some ?

@elemoine

This comment has been minimized.

Copy link

elemoine commented Jun 15, 2015

Are you on the "React Is A Terrible Idea" side as well?

@gsans

This comment has been minimized.

Copy link

gsans commented Nov 25, 2015

Guacamole with fries!

@dmackerman

This comment has been minimized.

Copy link

dmackerman commented Dec 30, 2015

You must be real fun at parties.

@evanplaice

This comment has been minimized.

Copy link

evanplaice commented Jan 28, 2016

@elemoine Neat article but web components are the standard that has been on the horizon for 2 years without consensus. Polymer tried to provide a useful polyfill for web components. Unlike most emerging standards, web components are fundamentally difficult and complex to polyfill. So, Polymer works but not very well.

@stephengardner

This comment has been minimized.

Copy link

stephengardner commented Mar 9, 2016

Wondering what the recommended alternative would be. Not that I agree. I could use a good laugh if jquery were brought up.

@FranzSkuffka

This comment has been minimized.

Copy link

FranzSkuffka commented Apr 5, 2016

@stephengardner vue.js is actually quite fun so far after I have spent a few days with it.

@brechtbilliet

This comment has been minimized.

Copy link

brechtbilliet commented May 24, 2016

So, You do a 5 minute search on Google for negative reads on Angular.
Big trees catch a lot of wind, and for that reason you will find negative reads on every framework.

First of all, Angular1 and angular2 shouldn't be evaluated together., since they are completely different frameworks.
Secondly, I don't see one argument that is personally yours.

Maybe make some valid arguments before creating biased misguiding posts?

@ntrp

This comment has been minimized.

Copy link

ntrp commented Sep 12, 2016

@stephengardner if you read some of the linked posts jQuery is brought up.. "Why using the over-complexity of angular when you con use jQuery". There is also someone talking about the fact that it's even better to use pure javascript.. Clearly people that have never worked on a complex application or have plenty of time to waste.

@xalisys

This comment has been minimized.

Copy link

xalisys commented Sep 12, 2016

Totally agree with @ntrp point, if you are working with small applications jQuery makes sense, for mid-side applications Knockout & Angular 1.x makes your life much easier as compared to other frameworks......i recently worked on very large scale enterprise level web application, we started off with angular 1.x with JS as application grows bigger and bigger we face two problems 1) Maintaining source code changes update etc.; 2) Performance among different browsers. (Chrome was best, guess who was worst 😄 yes its IE).

So we decide to move the code to Angular2 (when its came to RC), although there was some glitches while running both versions of Angular sided by side and moving small pieces only-by-one; but after migration Angular2 solved both of our problems; maintainability with Typescript and performance with its excellent design & scope management and bunch of other features.......its such a delight working with Angular2. I would recommend everybody to use angular2 at least one of your projects and see how easy to manage your application.

@rezonant

This comment has been minimized.

Copy link

rezonant commented Sep 20, 2016

After reading through most of these articles, I see only two complaints that I see as valid: Performance (mostly due to overuse of two way binding) and bad encapsulation (thanks to scope and root scope). These are indeed good reasons to avoid A1, but they do not apply to A2 at all. The rest of the argument seems to revolve around "it's too hard for me", "it's too hard for juniors" or "we've always done server side HTML gen, we always will do server side HTML gen, Angular doesn't fit well with that, and server side HTML gen is the "right" way to do it. Obviously this sort of argument is not specific to Angular, and from my point of view, it is a very wrong way to build web apps in this modern era.

@derek-fong

This comment has been minimized.

Copy link

derek-fong commented Oct 27, 2016

Is this guy trying to treat Angular JS and Angular 2 as the same thing?

@fletchsod-developer

This comment has been minimized.

Copy link

fletchsod-developer commented Feb 10, 2017

Oh please! Have you seen how much of the development time being wasted on bad Java Script to begin with, since 1990s? The framework is a step in the right direction and it is a matter of finding the right one. Thank God for TypeScript coming to our recuse with object orientation (ES6) when we're struggling with ES5 and over 500 buggy webpages to maintain. Now get to work.

@sjanaud

This comment has been minimized.

Copy link

sjanaud commented Mar 29, 2017

Angular is overriding the web and the liberty. ng-sucks.

@ghost

This comment has been minimized.

Copy link

ghost commented May 3, 2017

Have a look on InaxiumJS.
Suggestions for improvement and comments are always welcome.

@avidality

This comment has been minimized.

Copy link

avidality commented Jun 8, 2017

javascript is javascript no matter what bloat you toss on top. Just learn to use it or invent some other lang that browsers will adopt

@petrkoutnysw

This comment has been minimized.

Copy link

petrkoutnysw commented Jun 27, 2017

I'd recommend to check this: https://www.dotvvm.com/

@Shireilia

This comment has been minimized.

Copy link

Shireilia commented Aug 9, 2017

@sjanaud "Angular is overriding the web and the liberty. ng-sucks." Lol'd i'd like to see you explain how Angular does that :D

@jorgebucaran

This comment has been minimized.

Copy link

jorgebucaran commented Aug 15, 2017

@tdd Missing git.io link I just made for you. https://git.io/angularjustsayno 👋😉

@slmyers

This comment has been minimized.

Copy link

slmyers commented Oct 9, 2017

why I have never believed in Angular, why I think it'll publicly fail pretty soon now (a couple years)

Are we there yet? :D

@LucasFrecia

This comment has been minimized.

Copy link

LucasFrecia commented Oct 12, 2017

Reminds me of how some people saw the first model T as a horrible, backwards thing... and how others even thougt at that point humanity had peaked its technological prowess. I recommend you invest more of your time in productive ordeals instead of giving your and others oppinions as if they had any truth to it. In the end, all of this bits are just some devs' opinions.

@Giwayume

This comment has been minimized.

Copy link

Giwayume commented Feb 22, 2018

If you want large componentized enterprise applications with data reactivity and sensible template languages, use Vue or Aurelia. Angular 2+ is a hot mess of over-engineered code with a lack of common sense in framework design. Many parts of the templating language and Javascript API of Angular 2 are overly complicated and the addition of newer features (like when they added "else" logic to *ngIf) feel like they are hacked together with little common sense. I have to ID all of my else blocks? Really?

@blackjyn

This comment has been minimized.

Copy link

blackjyn commented Mar 1, 2018

I have leaved Angular since EOF 2014.
Angular 2+ is SUCK and overly complicated

@glemiere

This comment has been minimized.

Copy link

glemiere commented Mar 31, 2018

Angular is not overly complicated at all. Angular is made to build huuuuuge apps. Don't use it to make a single page websites.

@ibraheemalkilanny

This comment has been minimized.

Copy link

ibraheemalkilanny commented May 1, 2018

Angular is using Typescript. Once you get into that, you will see how much is it organized and layered.

BTW have you read ever some pages of Quran yourself? Try now http://quran.com/25

@zee85

This comment has been minimized.

Copy link

zee85 commented May 2, 2018

Angular is a very robust and powerful framework. Complex, perhaps but that is a matter of perspective. Everything is complex at first until you take the time to learn and understand it. Angular with the exception of immutability and Redux provides everything you need to build a modern, robust, and organized web app out of the box. Angular also provides implicit code quality, organization, and consistently between multiple developers. On-boarding devs familiar with Angular onto a new Angular project has much less of knowledge curve than other solutions which are less opinionated.

@omniscient

This comment has been minimized.

Copy link

omniscient commented May 27, 2018

Coming from 10 years working on a complex templated/generic/metadata driven MVVM Silverlight UX, to then 5 years of DurandalJs / Aurelia and now Angular, I can say that after 20 hours into the forays of Angular, the engineers who built this framework come from a very different background than anything that has been developed at Microsoft in the last 10 years. The reason I do Angular now is because of it's popularity. It's the Kim Kardashian UX framework at this point. Decision to use it made at exec level in larger organization will be mostly based on this assumption: "Everybody, their grand-pops and their nieces uses it". That elevates Angular over some of the the other options because the belief is that resources are plentiful to work on Angular 2+... That might be true to a degree, not even sure of that because of the fragmentation between angularjs and angular. The reality for me is that it's one of the worst option available right now in terms of usability, design and approach. The lock in is crazy vs. some of the other options that are more convention based and more decoupled. Do yourself a favor and evaluate frameworks for several weeks before choosing one.

@Seedarchangel

This comment has been minimized.

Copy link

Seedarchangel commented Jun 9, 2018

Totally agree, after hours of frustration.

@reedjones

This comment has been minimized.

Copy link

reedjones commented Jul 29, 2018

yup

@codemt

This comment has been minimized.

Copy link

codemt commented Aug 9, 2018

Totally agree, I have spent hours just solving problems in it, and ended up being frustrated due to its restrictions. I will never prefer Angular for my Personal projects. I seriously wonder why it has been so popular.

@kimonoki

This comment has been minimized.

Copy link

kimonoki commented Sep 25, 2018

nevertheless jd has it

@lemonbob

This comment has been minimized.

Copy link

lemonbob commented Sep 28, 2018

The reason for the popularity of these frameworks is because:

i) computers are now so fast that cumbersome frameworks don't affect performance too severely (a user wouldn't notice 1ms lag compared to 50ms lag even though the second is 50 times worse than the first).
ii) employers would rather pay 1/2 the wage for a bad programmer who can only output average results using a framework because most clients want cheap prices rather than good results.

To make an analogy, if this was the carpentry profession, Angular would be like the knockdown fittings that allow furniture to be screwed together quickly (i.e. flatpack).

Now, we all complain about the quality of flatpack furniture, but as long as it is far cheaper than quality carpentry that is what is going to predominate the market.

Also, keeping with the analogy, a quality cut joint such as a dovetail or a well cut mortise-and-tenon is far superior than a knockdown fitting, but a poorly cut mortise-and-tenon made by a bad carpenter is far worse than a cheap knockdown fitting. So yes, bad javascript is worse than Angular — but isn't that just enabling people who are bad at Javascript?

I would argue that frameworks have enabled bad programmers to flourish, driven down wages, driven down knowledge and training in the industry, and have resulted in a predominance of poor quality "flatpack" clone websites — don't even get me started on Bootstrap! This is why opinion are quite crystalized on the subject — either super for or super against frameworks.

However, just as in carpentry, I agree that sometimes the cheap fittings can be a great time-saving tool, but we should never view frameworks as anything other than a cheap time-saving tool that produces inferior (sometimes really inferior, albeit more cost effective) solutions.

@thepian

This comment has been minimized.

Copy link

thepian commented Jan 18, 2019

After making high performance streaming WebApps and building frameworks for them for 7 years, and then doing React and Angular for 5 years. I consider every minute I spent working with Angular a waste of life. It is horrible to such an extent that would't know where to start teaching why not. It encapsulates everything that is rotten by Software Development in 2018. Being knowledgeable about the topic I feel I can say that it isn't a step in the right direction, it's several steps in the wrong direction, and it is teaching a generation of developers some really broken ideas. React is at least a decent concept, even if it has the conceptual faults inherent in the SPA approach.

I thought that I had to go the Angular route because it seems to be the dominant choice, but by now I loathe it so much that I'm pretty sure I'll give up on Web Development, and take on a different career path.

@dtinsley333

This comment has been minimized.

Copy link

dtinsley333 commented May 4, 2019

Approximately 90% of .net related jobs in Nashville require Angular as a "must have". I am hoping that web assembly picks up allowing developers to better decouple the back end from the UI. I am very interested in Blazor for .net. I will celebrate the death of Angular.

@rbonomo

This comment has been minimized.

Copy link

rbonomo commented May 17, 2019

@dtinsley333 How does a new front-end programming language decouple the back-end from the front-end?

@dtinsley333

This comment has been minimized.

Copy link

dtinsley333 commented May 17, 2019

I guess I am saying with web assembly developers can use the language of their choice rather than having to use a back end language and a javascript framework. They will still use javascript when it makes sense.

@jjolivier

This comment has been minimized.

Copy link

jjolivier commented Jun 14, 2019

My opinion only. Someone's job was to think of something new, like a mix between marketing and coders? Their job is just to think up new ...t all the time. That said. They gave us J Query libraries... GRATE!!!. That made JavaScript just easier. It DIDN'T change it. It just made it easier in the sense of less code.
The creators of Angular, Node JS, and even business ideas like Agile, just had nothing better do then make people think they are making peoples operations, the way they code and manage code easier. Wrong. It's a headache to everyone, even to the people who studied it and enforcing it in their businesses. I stick to my guns so comment whatever you like.

@VictorQueiroz

This comment has been minimized.

Copy link

VictorQueiroz commented Jul 14, 2019

@tdd Good job at not coming with that cliche bullsh*t of "You can't compare a framework with a library". We all know that the main reason people started using Angular.js was the rendering engine, the REAL problem when it comes to web development. We don't need $http, $q or whatever else. We just needed a good, fast, standard and maintainable way of developing user interfaces and Angular.js was a first step towards that at the time.

Angular was never really alive. The only real contribution of Angular (And I'm including Angular.js) was to inspire projects like React.js and Polymer and it has become very clear to the community that React.js was the only one that really made a huge difference for us.

Even the fact that Angular is still trying to tweak HTML and perform heavy operations on runtime is just ridiculous. I'm shocked how guys are surprised by this. Let's get real, everything is moving so fast! We need things to get the job done and create a maintainable application.

@jeanfgagnon

This comment has been minimized.

Copy link

jeanfgagnon commented Aug 13, 2019

Switching from Angular 7 to 8 is a nightmare. And having to do such a switch every 6 month is completely absurd.

@arivera12

This comment has been minimized.

Copy link

arivera12 commented Aug 19, 2019

I think people who really understand what it's on every framework should comment over this post. I started moving few years ago from jQuery to Angular cause Angular had a huge boom on the web and that was the new technology for building web sites. First of all we can't compare jQuery vs Angular cause they are not same and they don't even work as the same, even though we can achieve to do the same tasks but in different approaches. Angular is a huge framework with a huge learning curve. Angular out of the box provides a lot of things you may need to build huge complex applications you can check those feature on the web. IMO I still found angular very complex to learn even if I have done some applications with angular and typescript. After looking around some other frameworks/alternatives I found react and Vuejs. I started playing around with react and I found it quite easily to use instead of angular. After some weeks I started playing with Vuejs. I found Vuejs more practical and straightforward to learn. Until today I have developed all my applications using Vuejs and left using angular. Even though Vuejs doesn't provide all the tools that are built-in in angular but it will give you a better understanding on how SPA works. We got to be realistic when we develop, why we gotta learn a bunch of builtin stuff when we may not use all of them at all? Even though Vuejs only provides the core functionality to build SPA we can't still compared it to Angular cause Angular have a lot of built-in stuff I consider Angular a Framework and Vuejs just a library. For example: Angular have a builtin http client, vuejs not, Angular have builtin validator, vuejs not and so on, you can compare angular features vs vuejs on the web but we cant just compared them at the end of the day. But do we really need learn all the tools builtin provide in Angular out of the box to build our website? That's the question we gotta ask out our self before selecting one thing over another. Another thing is that angular from version to version have a lot of breaking changes I have upgraded from Vuejs 1->2 and breaking changes have been minor but go and migrate from Angular 1 to Angular 2 and tell me how the migration was in terms of difficult? haha is a nightmare in hell. I am not a fan of Vuejs or React neither of Angular cause at the end of the day Javascript sucks from its beginning but IMO I would never recommend developing an application on Angular with those special directives of Angular that are just out of the standard of the web. NEVER AND EVER. Why never? Cause opinionated architecture sucks all the way long because there is no standards and no standards leads all the way down to hell in development and maintenance.

@arivera12

This comment has been minimized.

Copy link

arivera12 commented Aug 20, 2019

Approximately 90% of .net related jobs in Nashville require Angular as a "must have". I am hoping that web assembly picks up allowing developers to better decouple the back end from the UI. I am very interested in Blazor for .net. I will celebrate the death of Angular.

Hahaha I can bet Blazor will kill all those SPA frameworks and libs. I started using it and left vuejs behind some months ago. Obviously I still maintain applications over angular and vuejs but new development is going on top of Blazor OF COURSE! Dot Net Power on the client what else do we need?!

@matthewekeller

This comment has been minimized.

Copy link

matthewekeller commented Sep 11, 2019

If you want simplicity try WebRocketX. You will have to unbrainwash yourself of the json paradigm though. Webservers can call services just fine by themselves, and layout doesn't add hardly anything to your bandwidth, especially if you are good at css. Of course Angular is overcomplicated and hard to maintain. Who ever thought that a huge fat javascript client would be efficient to work in.

@joeyhub

This comment has been minimized.

Copy link

joeyhub commented Sep 20, 2019

How does a new front-end programming language decouple the back-end from the front-end?

It often doesn't. It's more of an illusion. Whenever I write code I organise things based on various categories. The factors can vary but tend to be obvious. I might write some code to build and traverse a tree then I might keep those functions close together the same way you might keep cutlery in the same draw. To do this I use the bear minimum to separate things. The order, scope, namespace and usually a file or folder.

This isn't a matter of it being enforced but rather of discipline. With frameworks and libraries many people use them to create hard boundaries instead of soft boundaries. The latter requires discipline but produces superior results. The former requires the creation of hard boundaries, walls, etc. Imagine if there were a wall everywhere between the pavement and road so that cars physically could not leave the road at all. It would be a lot of extra work and would also create hard limitations that in some cases would be needless, making people have to walk around to cross an empty road.

Imagine you don't like people talking about going to the toilet and eating at the same time. So you create two entirely incompatible languages that cannot be spoken at the same time where in only one you have the terms to speak about eating and only in the other do you have the terms to speak about the inevitable consequence of eating.

The reality is that doesn't necessary stop people from finding some way to be crass. Angular does things two fold at least, providing scaffolding as a kind of cage and templating but from what I see in ample legacy code base is that all of that does nothing to stop undisciplined programmers. If anything it only gives them more rope to hang themselves. For disciplined programmers it can do at much to restrain them as it can to offer conveniences to achieve separation. Not everything angular does encourages good code either.

Discipline is one of the most underappreciated concepts in programming and when it is present it tends to be inappropriately enforced. Some of the worst programmers I've known have also bee the strongest enforcers of discipline but not to a productive effect. It's things such as read that a function with more than 10 lines is bad, take it as gospel and ban > 10 lines. You get very unhappy code shops where people get fed up and just create functionName0, functionName1, breaking them up exactly and adding one each ten lines. Now you have a function with around 10% more lines. Whenever I hear the term decoupling I sense the smell of that because although it used to be a good term it's now become meaningless. It might as well mean karma or aura. Palm reading. It's become the new feng shui.

You decouple. Not angular. If you need angular to decouple, you can't and you don't decouple.

@Shireilia

This comment has been minimized.

Copy link

Shireilia commented Oct 4, 2019

why I have never believed in Angular, why I think it'll publicly fail pretty soon now (a couple years)

Are we there yet? :D

Are we there yet ? :D

@Maryannah

This comment has been minimized.

Copy link

Maryannah commented Oct 4, 2019

Switching from Angular 7 to 8 is a nightmare. And having to do such a switch every 6 month is completely absurd.

Step 1 : run ng update

Step 2 :

3cd49d

@arivera12

This comment has been minimized.

Copy link

arivera12 commented Oct 4, 2019

why I have never believed in Angular, why I think it'll publicly fail pretty soon now (a couple years)

Are we there yet? :D

Are we there yet ? :D

Its just a matter of time. Once people realize how updating and maintaining and angular cost, they will look for other alternatives. I personally have tried all those SPA frameworks. I vote for Vuejs with my eyes closed. What much people doesn't know already is that vuejs was created by an ex engineer from google that was working with angular core and he didn't liked so much things of it that he created vuejs. Vuejs since the begin was developed learning from angular and reactjs mistakes, and that's why its it better. Vuejs being the most younger of this framework have gain more popularity in less time that reactjs and angular.

@joeyhub

This comment has been minimized.

Copy link

joeyhub commented Oct 4, 2019

why I have never believed in Angular, why I think it'll publicly fail pretty soon now (a couple years)

Are we there yet? :D

Are we there yet ? :D

Its just a matter of time. Once people realize how updating and maintaining and angular cost, they will look for other alternatives. I personally have tried all those SPA frameworks. I vote for Vuejs with my eyes closed. What much people doesn't know already is that vuejs was created by an ex engineer from google that was working with angular core and he didn't liked so much things of it that he created vuejs. Vuejs since the begin was developed learning from angular and reactjs mistakes, and that's why its it better. Vuejs being the most younger of this framework have gain more popularity in less time that reactjs and angular.

Let simplify this. What do you want to do?

How many lines or bytes of code is that?

Angular is designed to be an endless sprawl. It solves your problems by extending the horizon beyond your view. If the solution is out of reach problem solved, you no longer have to reach as you know it'll accomplish nothing. You start with a blank slate them pull in thousands to millions of lines of code then bam it's a legacy codebase before you wrote a line of code.

It's immediately ten times bigger to a thousand times bigger than your initial problem.

It's a solution so huge the problem of its mere size alone supersedes itself as a solution to your problem.

All you need is a few beers and it'll all become clear.

VueJS probably has suckage as well but I've supported it to escape the sycophants and also in the hope of it being a middle of the road solution. What you say worries me a little. It might be an escape from bullshit but I'm not sure it's the ultimate.

@joeyhub

This comment has been minimized.

Copy link

joeyhub commented Oct 4, 2019

Switching from Angular 7 to 8 is a nightmare. And having to do such a switch every 6 month is completely absurd.

Step 1 : run ng update

Step 2 :

3cd49d

That's my life's story. Things that ought just work or be simple but OMG. And they complain about no invented here.

@arivera12

This comment has been minimized.

Copy link

arivera12 commented Oct 5, 2019

Switching from Angular 7 to 8 is a nightmare. And having to do such a switch every 6 month is completely absurd.

Step 1 : run ng update
Step 2 :
3cd49d

That's my life's story. Things that ought just work or be simple but OMG. And they complain about no invented here.

This is the best and simplified comment that says it all in simple words.

@Maryannah

This comment has been minimized.

Copy link

Maryannah commented Oct 5, 2019

That's my life's story. Things that ought just work or be simple but OMG. And they complain about no invented here.

This is the best and simplified comment that says it all in simple words.

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.