I must admit, modern angular has been a pleasure to use. It's a shame that the ecosystem is a little rough. Luckily you get so much out of the box already.
I wish Angular dropped their weird compiler that's tight coupled to tsc and moved into more pluggable approach so you can use it with whatever TS compiler. App and unit test cold build times are still crap, but at least with a coding agent you care about this less.
Angular should ditch the compiler altogether - it really hinders them in so many ways, especially now with AI-codegen where tools have to specifically choose to do the work to integrate the Angular toolchain instead of using plain TypeScript and HTML.
"plain TypeScript"? Just like Angular, TypeScript depends on a compiler too, regardless of where in your toolchain it is, unless I missed browsers somehow being able to straight up run TypeScript nowadays. Bit ironic to cite "ditch the compiler" as the reason to switch from one compiler to another.
In theory that’s true (although observables are for reactivity too), but Angular uses observables for its http library and http requests are very much not streams. It’s one of the main downsides of working with Angular, the http library is mediocre and does come with the added overhead and complexity that rxjs brings.
Until this release (if you only use stable features) using forms meant dealing with observables too, even if you just want to read data when submitting a form and validating some data on change/blur.
And often you’ll find that your data from promises, observables and signals need to interact with each other, which can be annoying.
Fortunately the situation with signals and their async usage is improving, and iirc the Angular team wants to make rxjs optional, but until it is Angular can be a confusing mess on some points.
The problem with Angular is that the http client service used to return observables by default and that made people think that you had to use them as such. It was a mostly useless, massive pain. Working with Angular became a pleasure the moment we decided to just cast our service calls to promises.
For the rest, RxJS is cool where you actually need it and want it.
Agree. RxJS is a beast to approach at first but it's a genuinely cool library, as long as you don't spread observable around when you don't actually need them. I used the same approach for a few years (pushing my http calls behind domain-specific api services that only return promise), and it's way simpler to handle.
I still use RxJS, but mostly in the top-level component and/or service who orchestrate between data, url state and api responses. Those top-level page usually keep the default change detection instead of the 'on-push' strategy).
Really excited for this. I've been dying to use signal-forms and resources since they were experimental. Once I got on the signal train, I could never go back and having to use RxJS for forms became a major pain point.
Could you say more about signals? Is it are all analogous to, say, game engine signals paradigms (eg Godot) - components at any depth emit signals and any other component can subscribe? Or something totally different?
Wow Angular Aria looks fantastic. Even have full docs for the more complicated scenarios like autocomplete. Can't wait to get this in my hands and see if it replaces the custom screen reader autocomplete I had to make.
Maybe I'm dumb, but I go to: https://angular.dev/guide/aria/overview#showcase and try out the keyboard controls, somehow they've decided that those elements should be navigated with the arrow keys instead of much more commonly used tab and shift+tab? Even the tabs from their own documentation, right above that example, also uses tab/shift-tab for moving focus between them.
A lot of those behaviors aren't their decisions, they're specs from the W3C[1]. The tab behavior may be an oversight though, the W3C page specifies subsequent tab presses should move the focus outside of the tab list, but it could also be an exception. I'm not an expert but sometimes there are exceptions made due to the realities that operating systems, browsers, and screen readers all have varying degrees of support for accessibility features. Accessibility is a very deep rabbit hole, which is why these kind of libraries are popular in the first place.
Yeah, sure, I'm well aware of that, it was more a reaction to parent saying that specifically the accessibility stuff looks amazing, but seems they haven't even nailed the basics yet, so I'm wondering where the amazing parts are.
With that said, the autocomplete example which parent mentioned, does seem well made. Was just surprising to see such a basic mistake in the documentation for the accessibility stuff, one would think they would take extra care to get it right there, as that's what people (and LLMs...) will read and retain.
Or I mean, you could just use Django (or some faster backend with templating and SSR). Using that with htmx you get the SPA experience and still without the madness of an actual rotten JS ecosystem.
I recently upgraded a relatively complex angular project from v14 to v21. I feel like Angular development slowed down for a few years. However, looking at the changes over those versions in total makes it feel like a whole new framework.
Out of curiosity I’ve progressed away from Angular around 2018. My peak spa-ish reduxian state management experience was building an NgRX combo with @ngrx/effects for side effects.
Till this day I remember this fondly as it gave me so much ease of control of the application’s many complex states. Especially when I nowadays deal with all sorts of false-prophets in forms of hooks and what ever reactive primitive du-jour (don’t get
Me wrong they are 80% of the time the better choice, it’s just that they don’t scale).
What’s today’s version of complex state management in Angular-Land?
NGRX Signals is the new way and its lovely.
Instead of having 5 files to get state hooked up, its usually 1 file and all/most functionality is co-located.
I enjoyed Angular before React, had a good run with it, it was a vibe, now if I'm being honest I totally forget it ever existed. Not to praise React either, lately I've been actually digging the htmx way, though I feel like the battle is now which framework/language is the agent more proficient with and the static/compiler level tooling can help catch mistakes.
Been using Angular v21 for a very complex app. Have had a wonderful experience, in terms of the cognitive load to make and work with components, state and data flow.
Signals and signal stores make it very easy.
Did the whole coding by hand, no ai coding tools too.
Angular has made my programming career joy and it has not felt like work at all, all the best to angular dev team! Nothing better than getting to work with favorite language, learning better and getting paid :D
Signals are a privative data structure in Angular, hence core. Signal-based forms are part of the Forms module. You aren't using forms, you don't get the overhead.
I haven't been involved in Angular for quite some time. As someone who uses other JavaScript frameworks (Vue, React, Svelte), what am I missing out on? I'd be curious to hear from people who would pick Angular over any of the other big frameworks.
I would just say in general Angular is best if you basically want to build an old school application as a website.. and especially if you kind of hate javascript and web development but focus on the backend as the main part.
Same, I'm currently working more in React project, and I miss Angular so much that I actually use it in my personal project, it can be a genuine pleasure to use if you avoid over-engineering the rest.
React shines when it comes to the composability of components, eg. for data-table with customizable rows. It's still possible in Angular, but it's heavier.
For the rest (syntax, the ecosystem, routing, data-handling, DI), Angular is so much more straightforward. Services with dependency-injection is 99% of the time way simpler to reason about than React hooks, especially when you start to need cascading changes between hooks after user interaction.
What does "fast" even mean? I always see people talk about performance and wonder, what kind of applications are they building where they are seeing a massive gap in performance between frameworks?
I'm pretty sure in this late game, all the frameworks are more-or-less the same in terms of render performance. Angular has a lot of cool tricks (with these signals) that allow for only re-rending what changes.
the biggest problem in angular is that it is so hard to use a custom toolchain, i.e. not their angular/cli product instead mix it with other stuff in lets say vite
What kinds of features or workflows are you missing that Angular's CLI doesn't cover? Or is it just that you're used to Vite (or something else) and wish you could use that instead of Angular's own tooling?
I'm not on the Angular development team or anything, though I do use Angular at $DAY_JOB and I'm overall perfectly fine with the framework and its tooling. However, the grass might be greener elsewhere; I'm just not familiar with it!
Seems like Angular has gotten better since v2 (my last experience).
Has anyone done a modern Angular vs. React comparison that's not an AI slop article?
I'm also curious if it's "simple made easy" for performant applications. React is arguably "simple made hard", but there are notable, highly performant applications written with it (Linear comes to mind).
Modern Angular is MUCH nicer to use than the v2 days (or even the v4 days when I first started working with it). A lot of the required boilerplate is unnecessary nowadays. And even RxJS and NgRX are becoming less and less necessary to use too, which is great.
When I look at job postings and see "React" I go "ugh" these days and find myself looking for Angular instead. That's the complete opposite of my thoughts from just two years ago.
I would still rather use something else (instead or React or Angular) but 1) most jobs in my area are asking for one of those, and 2) I'm actually starting to lean towards Angular even for personal projects.
Angular is great these days, and they're making really nice improvements.