As an ex-AngularJS developer, who worked on porting a LARGE app to Angular - if you're in that boat, look into just rewriting in Vue. It's similar to AngularJS (more so than Angular) but with some extra niceties.
I used to do angular - went for a ride on the first ~3 versions of their rollercoaster. For me, Angular was a fantastic set of training wheels but I eventually hungered for more direct control over my circumstances. Moved to RiotJS for a few years, but then it got a little bit complicated/weird from our perspective.
These days, I just do vanilla JS/HTML/CSS. In some cases we serve our pages using server-side rendering techniques via Blazor, so there is no tricky state synchronization game to play over the wire. But, Blazor is mostly just doing what PHP used to do for us. We aren't diving into their component/binding ecosystem any further than we need to.
Biggest advantage with a vanilla stack is that you will never get trapped on an old version of one of these things and be forced to "migrate" (i.e. "rewrite") your application each time. Vanilla also means you don't have to submit yourself to any arbitrary package manager, build toolchain, et. al. Your entire product can fit inside 1 html document that just instantly works in any browser.
I worked on AngularJS and moved to Angular ever since 2+. It is a great platform and actually similar to Vue in some respects. No reason to abandon Angular although Vue and others are also good.
When the deprecation was originally announced I basically just decided to sever from Angular all together. The "migration" practically involved rewriting pretty much everything anyway. The new thing is surely technically superior, but it just left me very bitter. I learned my lesson!
There were definitely methods in the components that needed to be moved into services, but there wasn't really much rewriting per se.
FWIW the first five steps, in terms of upgrading the AngularJS app so that it used isolated components instead of nested scopes, was more time consuming than actually porting the modernized AngularJS app to Angular.
Same experience here. Despite tools provided by the Angular team, the migration was really, really painful. I spent a significant amount of time moving a large AngularJS app to Angular, and despite all the effort we were still far from completing it when I left the company.
Ive migrated several apps to angular 2 and assuming you got to angular 1.6 (or even just 1.4 with components) first, the rewrite is no big deal unless you heavily leverage specific things (root scope, some directive stuff, some template cache stuff). Especially with ngUpgrade available, I never found it terribly hard, though it did take time.
why would you be bitter since they just improved the platform. It wasn't hard to learn the migration and AngularJS needed to be let go. Angular is every bit as good as other alternatives.
Totally correct to discontinue the old AngularJS imho.
Google, years ago, made one of the best choice adopting TypeScript for its new framework, Angular.
I used to code in both AngularJS and Angular, and the improvement between the two is huge, thanks also to TypeScript. I'm a big Angular fan, even if I tried React, I highly prefer Angular for being more strict, complete and imho more suited for very big projects.
Can you clarify what you mean by "more strict"? I've been using React since before Redux existed and while these days I don't think there is any need for a state library anymore I of course agree that Angular is more complete as one of the first decisions you make when starting a React project is which routing library to use (e.g. react-router or reach-router, or if you want an integrated solution, remix or next) and what to do about network requests (e.g. react-query or one of the many GraphQL libraries).
I also think it's worth pointing out that people have very different understandings of what "very big projects" are. I think you mean projects with many different people working on it, in which case I agree, but often people misinterpret these statements thinking that their 1-5 person team working on a web app is a "very big project" because they have a million users.
AngularJS seemed to be the last well supported fronted library that let me just write JavaScript, and not need to pull in the entire node ecosystem just for making a simple website.
It's insane to me that websites need to be compiled these days. My websites mostly consist of an index.html and a code.js, and then unzipping whatever goofy template into the js, css, images folders etc. I feel like requiring a fluent understanding of the entire node ecosystem build even the simplest websites is a big enough hurdle that a lot of enthusiastic new people are just going to give up and do something else.
> Originally, the rewrite of AngularJS was called "Angular 2", but this led to confusion among developers. To clarify, the Team announced that separate terms should be used for each framework with "AngularJS" referring to the 1.X versions and "Angular" without the "JS" referring to versions 2 and up.
Our company saw the writing on the wall several years ago and completely ditched AngularJs and moved to React. It was wildly successful - after the whole project was rewritten there was dramatically less code, even though we added tests and new features along the way.
I have the same problem with Angular that I have with Spring - nobody can actually articulate what problem these frameworks are trying to solve (other than the problem of there not being a framework?). They both feel like tons of overhead with zero actual functionality.
I feel you. I have worked on an Angular project for over a year and was miserable working with it (and I _really_ tried to like it).
At first glance it seems "complete", but once you start building there's just so many insane edge cases that don't work well or have bugs. I also think that "integrating" RxJS was a mistake, while I get it and it's nice, it's imho too low level of an abstraction if you have many people that don't necessarily want to learn all the details (easy to shoot yourself in the foot with it), too different from anything else in JS, and too poorly integrated into angular.
And also the verbosity of everything.. was too much for me.
For those who don't know, it's possible (and encouraged) to migrate your app gradually as a hybrid application. You don't have to do it all at once up front.
It's strange to think I was working on AngularJS and Flash apps at the same time. Flash feels like it was a millennia ago, whilst AngularJS feels very recent. Maybe because AngularJS's successor keeps it's name fresh in my mind?
No, you can either run them side by side (ngUpgrade) or move to angular 2 incrementally by first upgrading to angularjs 1.6 then going to angular 2. From there its a matter of moving up the angular 2 upgrade path.
The initial rollout of angular 2 vs angularJS was a confusing shit show (and will bite anyone getting into angular brand new as they hit constant google results for one angular when they want the other), but the upgradability is a case study in how to do it right in my opinion. They really made it accessible for anyone to move an app over.
[+] [-] impostervt|4 years ago|reply
[+] [-] bob1029|4 years ago|reply
These days, I just do vanilla JS/HTML/CSS. In some cases we serve our pages using server-side rendering techniques via Blazor, so there is no tricky state synchronization game to play over the wire. But, Blazor is mostly just doing what PHP used to do for us. We aren't diving into their component/binding ecosystem any further than we need to.
Biggest advantage with a vanilla stack is that you will never get trapped on an old version of one of these things and be forced to "migrate" (i.e. "rewrite") your application each time. Vanilla also means you don't have to submit yourself to any arbitrary package manager, build toolchain, et. al. Your entire product can fit inside 1 html document that just instantly works in any browser.
[+] [-] tdekoekkoek|4 years ago|reply
[+] [-] paaaaaaaaaa|4 years ago|reply
[+] [-] pram|4 years ago|reply
[+] [-] Alex3917|4 years ago|reply
I used the 10-step process outlined here and it was pretty straightforward: https://codecraft.tv/courses/angularjs-migration/overview/in...
There were definitely methods in the components that needed to be moved into services, but there wasn't really much rewriting per se.
FWIW the first five steps, in terms of upgrading the AngularJS app so that it used isolated components instead of nested scopes, was more time consuming than actually porting the modernized AngularJS app to Angular.
[+] [-] arnvald|4 years ago|reply
These days I use Vue or React instead.
[+] [-] bradleyjg|4 years ago|reply
[+] [-] ldiracdelta|4 years ago|reply
[+] [-] JamesSwift|4 years ago|reply
[+] [-] tdekoekkoek|4 years ago|reply
[+] [-] NicoJuicy|4 years ago|reply
( I've written webapps in both AngularJS and Angular)
[+] [-] davide_v|4 years ago|reply
[+] [-] EMM_386|4 years ago|reply
I agree, I just moved us to Angular 13 and I love every second of it.
I've worked on React projects but will take Angular any day of the week.
[+] [-] hnbad|4 years ago|reply
I also think it's worth pointing out that people have very different understandings of what "very big projects" are. I think you mean projects with many different people working on it, in which case I agree, but often people misinterpret these statements thinking that their 1-5 person team working on a web app is a "very big project" because they have a million users.
[+] [-] px43|4 years ago|reply
It's insane to me that websites need to be compiled these days. My websites mostly consist of an index.html and a code.js, and then unzipping whatever goofy template into the js, css, images folders etc. I feel like requiring a fluent understanding of the entire node ecosystem build even the simplest websites is a big enough hurdle that a lot of enthusiastic new people are just going to give up and do something else.
[+] [-] hericium|4 years ago|reply
Angular is in active development and growing. Exciting big changes coming in 2022!"
[+] [-] Karellen|4 years ago|reply
-- https://en.wikipedia.org/wiki/Angular_(web_framework)#Naming
Well, nice try I guess. Still, they do say that "Naming things" is one of the two hard problems in computer science.
[+] [-] trixie_|4 years ago|reply
[+] [-] dorsdag|4 years ago|reply
https://www.singlewire.com/blog/development/react-migration
Just doing it piece-by-piece was a really good strategy, instead of a stop-the-world rewrite.
[+] [-] jokoon|4 years ago|reply
I was going crazy with all the files you need to have for a small project.
It's like all the horrible sides of OOP and abstraction, but on steroids.
[+] [-] commandlinefan|4 years ago|reply
[+] [-] kitkat_new|4 years ago|reply
> It's like all the horrible sides of OOP and abstraction, but on steroids.
Can you go more into detail?
[+] [-] awesomepeter|4 years ago|reply
At first glance it seems "complete", but once you start building there's just so many insane edge cases that don't work well or have bugs. I also think that "integrating" RxJS was a mistake, while I get it and it's nice, it's imho too low level of an abstraction if you have many people that don't necessarily want to learn all the details (easy to shoot yourself in the foot with it), too different from anything else in JS, and too poorly integrated into angular.
And also the verbosity of everything.. was too much for me.
[+] [-] aluminum96|4 years ago|reply
[+] [-] SlowAndCalm|4 years ago|reply
[+] [-] polyterative|4 years ago|reply
[+] [-] qwerty456127|4 years ago|reply
[+] [-] JamesSwift|4 years ago|reply
The initial rollout of angular 2 vs angularJS was a confusing shit show (and will bite anyone getting into angular brand new as they hit constant google results for one angular when they want the other), but the upgradability is a case study in how to do it right in my opinion. They really made it accessible for anyone to move an app over.
[+] [-] timetraveller26|4 years ago|reply