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.
P.S. Are you hiring? My good friend is looking for work.