It’s not perfect, but it’s not particularly worse than other offerings in the field. The fact that various bloggers have graced the world with their insight on how bad Angular is does not automatically mean they are right; people have been known to be Wrong on the Internet in the past, and blogging is cheap (this being one such example).
Some key points that are worth mentioning:
- Angular does not lock you into anything. You can minimize dependency injection and get your singleton handles any way you deem fit (window.foo, anyone?). You can use AMD/Browserify/ES6 module system instead of Angular module system to partition your code (by slapping everything in a single angular.module(“app”)). You can use the quirky jQuery tree plugin (or the lightning-fast table) you inherited from the guy that left last month by putting it into directive (that allows raw DOM manipulation unlimited by digest cycle). Angular (unlike e.g. Ember or even Backbone) has no opinion how you deal with web apis. And so on.
- There is no perfect framework yet, but you need to pick something. If you are in the business of building a web app, there is no choice that will last you five years without some degree of migration. Angular 1 is the most conservative choice available right now, with skill (and likely code, to some extent) portability to Angular 2 (which is guaranteed to become successful due to community dynamics). If winds were to change and React eventually became the dominant framework, it’s unlikely to be the React of today, but rather some future iteration of it — likewise, a future iteration of Angular would likely have Virtual DOM and other architectural features of the frameworks at that time. Competition will be good and healthy.
- Marketable skillset. If you are an employer, a way to keep your employees happy is to let them build skills that are valuable to the employees themselves. Being able to hack Angular well is an asset that increases the demand of the employee in the marker, so your developers won’t feel they are sacrificing their youth on a dead-end framework their architect picked (or worse, implemented) after reading a sales pitch on Reddit. Even if you feel like the framework is too hard here and there (Angular has some rough, complex edges), it’s good to know all that efforts to tackle the beast is not going to waste.
It is unfortunate Angular 1 is not smaller, faster and better than it is, but it’s the “IBM” that won’t get you fired in a year or so — and you won’t need to keep answering to “why not Angular then” for everyone that hears you are using FooBarFramework 0.12.2.