Update Jan 19, 2018: I was wrong, please read It’s NOT OK to Still Use Angular 1 in 2018 instead.
I saw an old friend over the weekend, who is a Director of Front End at a local start up. He asked me what framework we were using, and I said, still Angular 1. He then asked if we used Angular 1 even for the new projects? “Of course not!”, I lied.
Later that day it came up that 2 more people were still using Angular 1 at their work. This was very much inline with an informal poll that I conducted earlier, that showed that 64% of developers are still using Angular 1 vs Angular 2+.
This got me thinking, why did I feel the need to lie about our ongoing use of Angular 1? Perhaps choosing Angular 1 is still a valid choice for a large number of companies.
It is probably a wrong choice for a brand new company, but for a company that already has a number of Angular projects, I don’t see enough reasons (yet) to choose to support one more framework in addition to Angular 1.
Angular 1 by now ( mid 2017) has become a boring technology, and as the linked article indicates boring does not mean bad. Angular 1 has a number of shortcomings, but by now they are well understood and addressed.
Angular 1 has a large learning curve, but it also has a great number of resources available to help you get started.
Angular 1 is not very performant, but it is performant enough for a large number of use cases. Angular 1 has a number of performance bottlenecks, which are too well documented and understood at this point.
Angular 1 code can look funky, but it also has great and easy to follow style guides to help remedy this.
In addition to all the downsides outline above, Angular 1 has a large list of benefits.
Angular 1 is mature, everybody and their mother has been using Angular 1 in production for years.
Angular 1 is easy to get started with. Unlike other popular frameworks that require complicated build steps and setup, an app can be build with Angular 1 by downloading a single file and including it at the top of
Angular 1 provides a lot out of the box. Angular 1 is a true framework. It is not a view layer, it is not a data layer, it is not a templating engine, it is not a router. You get everything with it, including years of security and bug fixes. (In some cases you might have to include 2+ files at the top of the
index.html file, but it really is as complex as it gets).
Angular 1 has a mature ecosystem. From plugins to stack overflow questions, if you Google it, chances are it’s there.
Angular 1 has components. I love components, and Angular 1 has components since version 1.5.x and they had directives since before humans walked the earth.
Angular 1 is not going away. Sure Angular 2+ authors may want to see Angular 1 curl up and die, but Angular 1 is not more dead than Python 2 was dead when Python 3 came out in 2008. Unlike Python 2 to Python 3 re-write, which felt like different versions of the same language, Angular 2+ is basically a brand new framework, that has very little in common with Angular 1. Even if Google decided to stop funding/maintaining Angular 1 (and for now, they ARE planning to maintain it see here and here) it’s an open source project. It will get forked and it might even get better as a result of it.
I can keep going, but you get the idea.
Angular 1 does a number of things really well and it is very mature. We as a community should not feel bad about using Angular. There are a number of other completely different frameworks and ecosystems out there (Angular 2+, React, Ember, Aurelia, Vue, Reactive, Mithril, Riot, Elm, Preact, Inferno, Polymer to name a few) and they are all valid choices, if they work for your business and your team.
But Angular 1 currently makes the most business sense to us, and for now, we are sticking with it.
It’s OK to Still Use Angular 1 in 2017: https://t.co/LL0gdzF4zh
Update 1: Of course somebody said: “Just use React, setting up Webpack is not that hard”. My answer to this is that, in my experience, it takes a lot more than just setting up the Webpack to get a team on React. Webpack is just one out of 100s decisions that the team will be forced to make. With Angular there are a lot more things decided for you, which could be a very productive benefit for a team already experienced with Angular ecosystem. This is precisely my point. For a brand new team with no Angular experience, React might be better. For a team that is already experienced with Angular 1, however, it may be worth their while to stick to Angular 1.