It’s OK to Still Use Angular 1 in 2017

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 index.html file.

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.

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.

17 thoughts on “It’s OK to Still Use Angular 1 in 2017”

  1. You may call this “left field” but we’re still very happy and amazingly productive writing extremely performant, AJAX powered, partially updated, component oriented, MVC apps that don’t need google scale (most companies don’t need their apps to be “google scale” but their developers’ egos won’t let them admit that) using Wicket in a pure Java world.
    The ability to write model code once in one language instead of implementing model code twice: in back end language X and front end language JavaScript or TypeScript is incredibly more efficient. I have worked in some contracts with Java back end, Angular JS with Javascript or CoffeeScript front end and the duplication is monotonous and an extra maintenance burden.
    For more recent projects we have used Wicket with the Wicket-Bootstrap add on which makes pure Java, Bootstrap powered apps an absolute dream to develop with.
    It really is one of the coolest, most productive stacks I’ve ever worked with and if your ego will allow you to accept that your web app won’t ever need to handle 3 billion hits per day then its well worth a try.

  2. Ye, I fully agree and happy there are still such people like you. Kind of “I am not alone”. Because I feel a great benefits from AngularJS1. It is easy, fast (sure if you know how it works), light. Digest magic it is a great benefit. Even in React you should write smth kind of listener to track for input value within the controler while it is enough in AngularJs simply declare ng-model inside HTML. Code a lot smaller for some logic in AngularJS then the rest frameworks.

    The one important thing which has been missed by google for my opinion is that business would like to have solutions ASAP and cheap. With Angular 2 it is huge overhead, not so many developers are moving to Angular 2+, only in a case of salary. Only when you obtain job offer where angular 2+ is required and salary is two times higher. And it is not only my position, a lot of developers say – “I am not interesting in job”. But if you propose two times bigger salary – even angular 2 + will be worth to start learning it.

    I have seen developers who are thinking very narrow, like “Angular2 has already 4th version, so it is prospect”. What is the stupid conclusion??? They do not understand that business owners do not want to play in this game (working for a working). If there is framewrok which is satisfies their needs – they will be used it and thats all. No any new even more powerfull things can not pull them, because business has a lot of more essential problems, but not that some frameworks has some small from business point benefits compare to another. What will be cheaper??? That is the main question for all of them. Because business brings real money, from which we have salary and there mustnot be any kind of thoughts like “Angular2 has more prospects …. because it is declared in the….” paid articles but not worth such overhead.

    Google probably is targeting to involve more developers to their framework. That is the reason of type script. It is verry similar to C#, and I heard a lot of positives regarding angular2 from C# developers. But no one from them does not work with angular2, event more – they continue working with backend. Because if you are backend developer – you will work as backend developer for years, and if you are frontend – you will be frontend. That is why Google has a some problem with the Angular2. I know only wellknown companies start to use Angular2 (cyclum, luxoft and so on). The rest????

    Last notes.
    I see Vue.js becoming more stronger and stronger. It is a good substitution for angularJs. Thats is why I suppose Google has activated some appeals regarding angularJs (3 years LTS). Lateron, I assume, Google will be looking for trends, and may continue supporting or creating some briges to Angular2. Also I think they may open Angular2 w/o typescrtipt. This things I guess G keeps in the pocket for safe case.I believe, soon (10 years) – will be smth very unique and interesting, what may kill existed in those time frameworks. For Angular2+ is remained not so many years. If Google will will spend years only for promoting it – Angular2 will be died without success before new one star raised!

    Thanks!

  3. Interesting read, both the post and the comments. I have been using Angular 1.X exclusively for a little more than two years. We are not going to rewrite our code and we will actively maintain what we built.

    They should have called Angular 2 something else (and learnt from the Python 2->3 mistake, which seems quite minor compared to Angular). I would not be surprised if Angular 2/4/5 turns irrelevant and dead before Angular 1.X.

    I appreciate that AngularJS is JavaScript+HTML, and there is no build step required.
    I have even looked a little for simplifed/stripped versions of AngularJS.

    To me, Vue.js is the natural way to go now for new applications.

    At least, there is no reason to think AngularJS applications will not work properly for the forseeable future.

  4. I can’t find a single reference online anywhere indicating the future life expediency of AngularJS. Not on the official website for AngularJS, not in a single release note by the Angular team and not a single creditable blog post from anyone over at Google. The reason for this is very simple. Google can’t killed off AngularJS because there is no replacement, and it’s become a dead end framework that demonstrates an “idea” that Google once had that they are no longer pursuing.

    So how do you answer the question of the life expectancy of AngularJS?

    That is directly connected to the life expectancy of Angular. As long as the team is actively working on Angular there will always be support (if nothing more than superficial) for the AngularJS project, but building projects (old or new) with AngularJS is nothing more than “well, it works so why not use it”. It’s a weak argument.

    AngularJS is one of the largest examples of “technical debt” ever introduced as a free JavaScript framework. There is no other framework that can claim the same active user numbers and is also deprecated. You can browse job advertisements and repeatedly see how many businesses continue to seek AngularJS developers.

    Every hour a developer spends writing code in AngularJS is two hours they must spend later solving the problem of “we are no longer using AngularJS”. It’s not a question if it will happen, but just a question of when. The only defence a developer has now is to ask “does the project I’m working on with AngularJS have the same future as AngularJS?”.

    It’s all just technical debt, and there are just two groups of people. Those who have paid their debt and use something else, and those who keep growing the debt by using AngularJS.

    There has to be a large number of people jumping ship from Angular to other frameworks out of spite for what Google did. It’s been further made worse by the many API breaking changes Google made to Angular 2, 3 and 4. It took them almost 2 years to clue into the fact that API changes were pissing people off. There is also a large number of AngularJS developers who need the framework as a component library and not a single-page massive app. That entire user base was basically rejected by the Angular team.

    You have to be a fool to expect AngularJS to have a long life. It is only the people using it that are driving it’s future. The very team that built it has abandoned it. It feels like a bubble waiting to burst.

  5. In a world where JS developers jump on every new hype, I still agree that angular 1.x is a solid and great framework.
    We use 1.6 + and enjoy the components. Performance issues do not exist if you know how to develop with angular.
    We use ES2015, webpack and other new side frameworks\tools.

    It seems to me not such a big deal to convert our apps into React\Angular 2.x since we are developing correctly (component one way binding). The code will look pretty much the same (components will still have a template & a controller). We tend not to use scope and other bad practices (when we can avoid them).

    Don’t be shy with that. People who replace frameworks every two weeks don’t master them and their apps aren’t as reliable as yours.

  6. This isn’t about what is ‘cool’. Google’s development and support path is away from AngularJS and towards Angular 4.

  7. I have to agree with you. I work for a large medical company and we are standardized around Angular 1.x. We augment it with Bootstrap UI, UI Grid, custom filters, and Gulp build system to eek out performance. Angular 2 just didn’t look like a good fit for us. So we are working on React proof of concepts now and once we are confident we can move to React we will

  8. We use AngularJS 1.X at my job. It was my decision to go with it around 2 years ago and to be honest, while there are certain limits to AngularJS 1, the framework works REALLY well.

    We ended up “modernizing” our stack and use ES2015+, Webpack, and similar tools. And now, with component architecture, it really doesn’t feel much different from Angular 2+. In fact, when I hooked the two up together, the code for components looked eerily identical.

    Besides that, the performance problems are real but it’s not entirely difficult to avoid them. We use Redux for state management and that helps a lot with the churn of watchers. Virtual scroll gets rid of issues surrounding large lists. And lastly, proper component clean up avoids memory leaks. It’s all working fine and dandy these days. My main problem, really, is how the community and its tools are disappearing and tend to not be updated.

    I whole-heartedly expect a fork of AngularJS 1.X to survive for years and years to come. Especially considering that backbone and even Knockout still have a following and still get updates.

  9. I’m with everyone here. I’ve been trying to use Angular 2, but it just doesn’t feel like it was created for front-end developers. More for backend developers who want to mess with the UI. There’s something about the recommended style guide, that just feels like bad practice to me. How everything should be broken down into tiny components. I find myself looking for files all the time, especially when another developer does not name thing intuitively. Even if they did, new projects are stuck with so many folders of components.

    Angular 1 feels more natural. If I had the choice of a new framework, I would go with Vuejs.

  10. I spent a lot of time over the last 2 years developing in Angular 1.x. Angular 2 still hasn’t sold me. I’m currently working a job where it’s all React on the JS layer, and I’m not a fan of it either. I still cringe everytime I write a JSX statement. If I had to start a new project today and could choose the JS framework I felt was the best option for today and for the next few years, I’d choose Vuejs.

  11. 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.

    Do you want to say that your current team is already spoiled by Angular1?

  12. I agree. Angular 1.X is mature and comfortable for use in development, especially using the new component syntax.

    Our team developed an in-house build system for easily writing AngularJS applications with TypeScript + Sass, and it’s easier to use than setting up webpack + React.

    The best of all, it’s framework agnostic. You can easily use it to write a React / Vue / Ember /

    Just recently we made it stand-alone and public.

    Check it out:
    https://github.com/ryanelian/instapack

Comments are closed.