Why I don't like Angular
Funnily enough (or sadly, depends on your type of humour), in all the projects I worked on, the decision to go with Angular was rarely driven by hands-on frontend experience. It was usually made from a C-level perspective — prioritising perceived safety and enterprise credibility over developer ergonomics.
It always starts the same. “We need a quick prototype, so let’s go with Angular and Material UI. We can change things later” or “Google uses it so it has to be good and maintainable, which lowers risks” or “it’s closer to Java development and therefore fit for Enterprise grade software development”.
Then people are quickly pulling up some basic views that work OK, 10-20 observables and a few backend requests. Then things get complicated, the first Material components need to be customised. Oh shit, Angular Material doesn’t have a mat-field for basic time input? Oh no, we have to cobble something together! Then the client ends up hiring an UI/UX design company that chases after the next design award and the first file called “material-override.scss” is pushed into the repository. Then the first developer requests to switch projects because it’s just a mess.
2 years down the road, the dependencies can’t be updated because one arcane and most likely unmaintained by now UI component blocks a tree of 20 other modules from being updated, the design has nothing to do anymore with Material styling and there’s so many observables that debugging something is always comparable to an expedition down the rabbit hole. Most basic Material UI components are accompanied by 120 lines of CSS overrides. And nobody tries to split large views into smaller components because the component system is just way too overcomplicated. No one actually has fun touching any part of the code anymore. Updating the stack is a one week long trial and error party. And the chance is about 50% that you will roll-back.
Welcome to the world of business software development with Angular. There’s about a 80% chance that your experience will be similar to the above.
I talked to software architects working at public institutions that don’t even have an understanding of the basic differences between something like React or Svelte and Angular. They never wrote a single line of code with either. How anybody expects decisions of people so far removed from the trenches to turn out well is beyond me. They chose Angular solely because it has that “enterprise” smell. Probably the same people that call Go or Scala “exotic”.
To me personally, Angular is like an arcane book of magic that requires you to do things in the most complicated way possible while actively trying to prevent your from solving problems efficiently and creatively. Sometimes, the most mundane things require me to google for one hour, just to find out that it was impossible to find a solution to start with, in an intuitive way, because there’s some hidden API spec or whatever that is only relevant to Angular’s thirst for overcomplication.
I’m sorry, but it’s just not fun. And there’s at least 20 other options where solving problems is actually and actively interesting and rewarding. Angular just doesn’t feel like that.
A note from the future: This article was written in late 2021 and has aged poorly. Angular has changed dramatically since then — standalone components, signals, a new control flow syntax, and much more. The Angular of today is not the Angular I was ranting about. If you’re evaluating Angular now, do yourself a favour and look at where it is today rather than taking this piece at face value.
