Readit News logoReadit News
rychco · 3 years ago
I'm kind of amazed Angular is still around. I hadn't heard of it for what feels like years at this point & assumed it was already in the graveyard. My company tried using it back in 2017ish but it was a pain for us at the time.

Other than Google's own services, does anyone have any examples or experiences using Angular nowadays?

kylecordes · 3 years ago
You might be thinking of AngularJS 1.x, the older framework whose API looks pretty archaic nowadays.

It was succeeded by Angular (versions 2 and up), which is very popular for large complex apps at large companies. I think React, in the form of Next and other frameworks built around React, have finally caught up with the reason that made it so: more stuff "in the box", with decisions already made and already working.

If you have 200 Angular projects, there's a good chance developers can move between them without much difficulty. If you have 200 React projects, they might have 15 different combinations of selections for various accompanying libraries. This makes moving developers around harder (matters a lot in large organizations).

For example, nearly every Angular project uses Angular's CSS isolation mechanism plus Sass for complexities on other axes. Whereas there are various popular CSS solutions that divvy the React user community among them.

There are trade-offs, of course; Angular has so much in the box that so far nothing like Next (convention-based routing etc.) has sprung up around it. So I am quite bullish on React and Angular both - there will be lots of large important projects churning along with these in another decade, and beyond.

Also important to remember that these are just the two most popular; there are a couple of hundred other competing SPA frameworks that work very well for their intended use cases.

dSebastien · 3 years ago
Wise words, as usual. Angular certainly has a lot of value for larger companies not interested in having big technical stack differences between projects and teams.
jeremycarter · 3 years ago
Great analysis! If only people would read this before jumping to conclusions.
Zetaphor · 3 years ago
You're confusing your own experience for the reality of the market. My last three employers use Angular. My current employer just replaced an AngularJS app with a new Angular 11 app for a Fortune 100 client.

Go to a job listing site and you'll find just as many positions hiring for an Angular dev (often paired with C#/ASP) as you will React.

flakiness · 3 years ago
FYI there is 10 Angular vs 99 React (# of word occurrences) in a recent "who's hiring" thread [1].

[1] https://news.ycombinator.com/item?id=31582796

maxfurman · 3 years ago
I've used it on a lot of client projects, my current one included. Angular's batteries-included approach makes it way faster to spin up a new app for a new project, and avoids the problem of picking the wrong dependency for (state/navigation/styling/etc.) that plagues React projects.
woodpanel · 3 years ago
After using Angular for years at large Blue Chip projects I decided to switch over to React projects to see the other side of the isle for the last 4 years.

The atomicity of React makes it applicable in an immense variety of usecases, however this comes at the cost of an ecosystem providing a very fragile dependency graph.

With React you'll almost always have the newest trendy thing available as a tool (and not with Angular)[1]. Which means if someone comes up with a completely new philosophy that might better match your (team's) mental models, chances are it's available for react first.

OTOH this means chances are that the concensus of "how to do things" has changed so much within a short time, that older projects are not only difficult to upgrade, but consist of code that is really, really hard to understand at all.

[1] e.g. there was a time when Google's own Material UI was better implemented for React than for Angular.

WinstonSmith84 · 3 years ago
Next.js has finally solved React's mess

But I can't agree more, Angular has for its whole existence of 10+ years always been more consistent. But it's not always about tech - Facebook's Marketing > Google's Marketing ...

cjhowarddev · 3 years ago
I used Angular at my last company. After having used react for many years and then experimenting with svelte, Angular (even the most modern versions) felt like it was always in my way.

Bi-directional data binding and the isolation between style, structure, and logic felt was less productive. Angular has some nice properties, like dependency injection built in, but you can circumvent many of those needs with a functional component tree in react (or limit the surface area across components). The simple fact that you need @Output event emitters to handle callbacks is a good example of how bloated it feels.

It may be that I don't know nearly enough about Angular but even after a year of doing my best to learn the idiomatic Angular ways I wasn't impressed.

Zetaphor · 3 years ago
As someone who is now a couple years into using Angular after a number of years working with Vue (since 1.0) your observations are accurate. It doesn't really get any better as you become more familiar with the framework.
shadowwillow · 3 years ago
I have found it better practice to generally emit via a service BehaviorSubject that other components subscribe to rather than passing thru outputs and inputs generally speaking.

Deleted Comment

Dead Comment

yesimahuman · 3 years ago
Angular is very widely used in the enterprise, and I can confidently say that given we make most of our money at Ionic working directly with these enterprise teams. I think Angular has just found where it excels and that tends to be in larger companies.
jmkni · 3 years ago
I’m working with ionic at the moment on an Angular app, it’s brilliant
mat0 · 3 years ago
My last three jobs involved Angular. The second-to-last one was a very heavy application in the US healthcare space. Angular was perfect for that app. In conjunction with Rxjs / ngrx it was extremely powerful. I agree the learning curve was… steep. I don’t regret a minute of it. I moved to another company and I’m doing react now. I was actually hired to support the cash cow written in Angular, but now the company moved focus to full react and we are not hiring Angular devs anymore. React is fun though. I really enjoyed doing a deep dive with Hooks, but I would still work with Rxjs if I could
ng12 · 3 years ago
Angular is popular at places the HN crowd tends to not work at (banks, consulting, fortune whatevers). Not sure why that is.
varrock · 3 years ago
I've worked at a consulting firm as a dev where we used React for our all of our projects. Given the nature of the industry, we had a fairly high turnover rate with new devs constantly onboarding and older devs moving out. That, coupled with lack of engineering culture, resulted in our project architecture unfolding into what felt like a variety of different brain dumps in a codebase that was difficult to reason with.

It's my opinion that Angular would have safeguarded those projects from a scattered architecture with its opinionated framework, and ultimately resulted in less overhead associated with onboarding new resources and getting them up to speed.

The types of companies you listed aren't necessarily known as being engineering focused, and for a React project to really scale, I think that you need a good engineering culture to make that happen. Choosing Angular alleviates some of that work, and that's exactly what some companies need.

jmisavage · 3 years ago
It’s extremely popular with C# and .Net developers. They’re more likely to work at those places.
luisgvv · 3 years ago
The company I work on has a couple of projects built with Angular, however we are shifting to use React.

The reason being: no one around the company likes maintaining those projects because they hate the framework and we haven't been able to hire people willing to learn/work with Angular.

I love the framework as it has almost everything you need out of the box. At the beginning I hated it but as any tool/language once you get the architecture, patterns and ways to build stuff you feel it's a great tool.

jcadam · 3 years ago
When I see Angular in a job description, I think "this is a legacy maintenance job." So not surprised you have trouble hiring :).
thm76 · 3 years ago
After having worked on an Angular project for a little over a year I'm at the point where I'm very unlikely to accept another job where they use Angular. It's so frustrating to work with, and every week I find another corner in the framework that, in my opinion, is very poorly designed and/or implemented.
Klaster_1 · 3 years ago
The team I'm in uses Angular and used Angular.js before. The reasons are mostly historical, due to key developer's background. We never had any trouble finding people willing to work with it or who had prior experience. I have a hard time remembering a single instance of when the framework choice was a source of any issue, we'd be just as fine with Vue or React. Sure, Angular has a fair share of annoyances (who doesn't?), but these do get addressed, which is why the v14 feels like a step in the right direction - typed forms, less boilerplate, preliminary work for faster builds. In addition to these, my only gripes are with the router (ui-router was the best), not as big of a community compared to other frameworks and outdated testing tools that come out of the box. For SPAs, it does the job just fine.
pjmlp · 3 years ago
Yes, as Java/.NET shop, Angular is usually our first option for SPA applications, Vue second and then React third.

This when we just don't just use SSR + vanilaJS/WebAPIs.

itslennysfault · 3 years ago
Yeah, a bunch of companies use it. It is still the 2nd most popular frontend framework.

Off hand I know it's used heavily at: Google (duh), Microsoft, VMWare, Capitol One and Fidelity.

I used it at Microsoft though there is also a ton of React there. I worked on PowerBI which is/was entirely Angular. The rest I just know from going to NgConf and seeing those other companies recruiting there.

Alex3917 · 3 years ago
> It is still the 2nd most popular frontend framework.

Most popular. It still has more weekly downloads than Next on npm.

mdaniel · 3 years ago
I believe the AWS console uses, or used?, angular, as one can see the ng-* attributes on their elements but I wasn't able to readily find a specific file to confirm or deny that's still the case
mdaniel · 3 years ago
I was looking for an RSS feed in the page source and noticed that the aws-docs site(s) uses angular: view-source:https://docs.aws.amazon.com/linux/al2022/release-notes/relno... view-source:https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcom...
jmkni · 3 years ago
In the UK, there is no shortage of work for Angular contractors.

Enterprise and Government are particularly keen on it.

bergenty · 3 years ago
Angular is very structurally regimented that makes it great for large complex applications used by large corporations, both for parallel work and maintenance.
pleb_nz · 3 years ago
You're in a bubble. It's used tonnes
veidr · 3 years ago
I work on a team that maintains a customer-facing web application that is built on Angular. It's been in production for the past six years.

I think Angular not quite in "the graveyeard", but probably only because a lot of large organizations outside of Google have large code bases that are built on it. (Having said that, I forget who they are — VMWare and CapitalOne and such, maybe?)

Still, it is definitely not a hot technology any more (if it ever was... I think the botched "upgrade" from the old "AngularJS" to the (completely different, almost a repudiation of a lot of the core ideas of the original) "Angular" framework shed a lot of users, so maybe Angular was never actually "hot" to begin with).

I definitely wouldn't start any new project using Angular, except in one specific circumstance: you have a large (relative to the size of your development team) body of existing software that uses Angular.

Then, you might want to share components and libraries across apps, and also leverage the skills of your existing Angular-using team.

I do find it somewhat harder to hire for roles specific to Angular development (I think because not many people want to learn it), and I also note that deep Angular knowledge isn't likely to be that helpful when looking for a new job, either. It counts for something, sure, but experience with React is far more sought after, and even Vue or Svelte is likely to be a little more useful.

Angular isn't horribly less capable than those frameworks — it does a lot for you, makes things like accessibility easy^W possible, is TypeScript-based which is overall a big win IMO — but there is, and has been, just too much fuckery around the edges.

I don't think Angular is really keeping up; I'd say it has been slowly falling even further behind the general state of the art.

The rollout of Ivy (its new, more performant rendering engine) was a multi-year boondoggle. It was late, it was painful to migrate to, third-party libraries still haven't really migrated so you still have problems/annoyances using those, and it sucked all their resources away from other important aspects like the Angular Language Service — so we didn't have good completion and linting in editors like VS Code, for quite a long time.

There was also nobody left to fix the testing story. They finally killed off Protractor, their bespoke E2E test monstrosity, after years of letting it languish, but the testing situation with Angular is still really mediocre and sub-par. Modern E2E frameworks like Playwright or Cypress support "component testing" (test components without rendering your whole app) for React and other frameworks out of the box, but not Angular.

AFAICT that is because Angular has this weird "NgModule" system where you construct these Angular-specific module things, and then they can import other Angular-specific module things... so rendering a component is not at all simple. The Angular team seems to be trying to make this optional, and Angular co-founder Igor Minar tweeted some "NgModule becoming optional soon, I think!" kind of teaser... before he left the Angular team and Google. That was several months ago at least; I also think he was the last founder to leave, so there are none left if I am not mistaken.

The i18n story recently finally upgraded to 'meh', after several years of being 'ugh'.

The DX is objectively bad — builds are very slow. There was some talk of taking the type checking out of band, so that it would still happen, but not block the edit-and-re-render iteration loop — but that hasn't happened. So in a non-trivial project that loop (which is typically the main loop) is slow.

Angular does do a lot for you, but in order to do so it monkey-patches DOM to hell and back — every async operation is monkey-patched so that it can do automagic change detection. That works great except when it doesn't work or when it makes things super slow, and it also makes debugging kind of nightmarish IMO — you end up in this 100s-of-frames-deep call stacks going through the zone.js async operation interception library. They are trying to make zone.js optional, too — or maybe it's technically optional now, but not really as a matter of practice.

TL;DR — Angular works okay, but after working with it in production for the last several years, I'd say is pretty mediocre; C- would not use again

WorldMaker · 3 years ago
It's good to see even experimental support for lessening the reliance on NgModules (which get in the way of appropriate tree-shaking), but I wish it weren't by doubling down on Angular's usage of non-standard Decorators. Requiring an experimental build flag in Typescript to even use Angular at all still feels like a red flag if not just outright poor taste in the framework architecture.
veidr · 3 years ago
Yeah, that has always weirded me out, too, but I have assumed that because Angular is one of TypeScript's largest and most significant customers, that the flag is highly unlikely to actually be removed.

(?) I'm just guessing though.

WorldMaker · 3 years ago
My understanding is that Babel already removed support for similar decorators to the ones Angular uses because that first attempt at TC39 decorators proposal was entirely revised and replaced with a very different decorators proposal. The "Decorators 2: Electric Boogaloo" proposal has actually made it to Stage 3 in TC39's proposal process this time which means that Typescript is going to be under pressure to add "real" decorators and remove the "fake" decorators that Angular currently relies on. I don't know how hard it would be for Typescript to support both medium/long-term but the transpilation backends for the two proposals are rather different to my understanding. (The new proposal is simpler, at least.)

Angular can certainly migrate to "real" decorators any day now, but my criticism stands that they could have already switched to the desugared form of the new proposal already (which resembles the desugared form of Python annotations) and have been better prepared for a migration. I've got a feeling part of the reason they haven't prepared for such a migration already is that maybe the DI is using too much Typescript-specific support in the "fake" decorators that maybe isn't likely to get carried forward into the "real" decorators.

vt85 · 3 years ago
So, the most important thing is that they renamed the master branch. Along with the racist slogans “Black lives matter”, those things made me vow that I will never use Angular in anything I can decide on. This madness is going too far and it will bring upon us real fascists.
hellojesus · 3 years ago
Starting with front end: angular or react? Seems like a good time to make a decision.
mhoad · 3 years ago
Angular comes with the advantage of you can learn “the angular way” and it will always be applicable. With React every time you pick up a new project you don’t know what you’re going to get.

I also have some serious doubts about the long term viability of React for what it’s worth. They made some choices early on in the project about how they decided to integrate with the wider web platform that made a lot of sense at the time but are now big liabilities that they can’t get rid of.

Like I wouldn’t consider starting a new project with React in 2022 if I wanted it to still be around for more than 5 years.

azemetre · 3 years ago
Could you expand upon what you mean by liabilities? Are you referring to the ecosystem or something like hooks?
hellojesus · 3 years ago
Thanks!
WorldMaker · 3 years ago
My opinion is that Angular is the worst of all the current frontend stacks. It's acceptably bad to a lot of people because "no one ever went wrong using something from Google", but it's just bad, especially for something associated with Google. It's "a horse designed by a committee of people with huge egos" that doesn't do anything it sets out to do well and has a ton of "best practices" and "defaults" that lead directly to "pits of failure" rather than anything resembling success. I've blogged more detailed technical analysis about that if you are interested.

React tries not to be awful and generally seems to have a good idea of the direction it is going. It's not perfect, no tech stack is ever perfect, but as an "expert" at this point on both stacks, I'd wholeheartedly recommend React over Angular.

jeremycarter · 3 years ago
This is purely anecdotal. Have you used both professionally in a large team?

Dead Comment

vcryan · 3 years ago
Does anyone care? :)
Vladimof · 3 years ago
The worst thing about Angular is that it obfuscates the web....