For people who didn't know: Wiz is apparently a internal framework that Google uses for their apps that wasn't ever open sourced (at least, not completely, based on a quick search).
At least they'll be dogfooding Angular now hopefully.
Google uses Angular quite a lot already. Pretty much all internal tools (bug tracker, code review, release tooling etc) is built with it. There's also a number of public facing apps like GCP Cloud Console and the Gemini web app.
Wiz has historically favored performance over ergonomics in the extreme. None of it is open source, and to be honest even if it was it's unlikely most people would want to use the mix of Java+Soy+JS+jQuery-ish API.
Interestingly both frameworks are around the same age (if you count Angular 1.0), but Wiz was kept internal.
What Sarah is referring to is both a big shift in Wiz to get modern ergonomics and a shift in the framework strategy to avoid having two entirely separate frameworks.
> Wiz has historically favored performance over ergonomics in the extreme.
This unsubstantiated claim is being paraded around by Googlers all over Twitter. And there's literaly nothing to back up this claim. Have you seen the extreme performance of the websites it apparently powers?
From the presentation: Angular is for "enterprise" apps. Wiz is for latency sensitive consumer apps (Google Search, Google Meet, Photos). They also mentioned Wiz is tightly integrated with the Google tech stack.
Basically all web frontends I've seen here are either Angular or Wiz, depending on latency requirements, or they're some legacy technology that is being moved to Angular or Wiz.
I can say from experience that Google requires third-parties use Angular when they are developing experiences on behalf of Google — i.e. through their agency partners.
Wiz is a web framework at google that is abysmal to work with. It’s still living in 2010, it’s all Java backend based, the build times are unbearable, and the templating, Soy, is some Java engineer who loves curly braces too much.
It’s a lot of magic and all convoluted, it’s pathetic a company this large has this as their main offering, JSX is a positive move but it’s still lipstick on a pig as it’s not really JSX but just three Java templates under the hood for now. Signals aren’t the panacea they keep saying as they simply don’t scale in big apps since the data flow is all over the place.
Googlers use Angular at google because despite its garbage size and developer experience, believe it or not, the dev experience is miles better than Wiz. It’s also nowhere near the most popular internal usage framework idk why they say that. It’s Wiz by far.
And all this is because googlers just want React or Vue but are not allowed because they are “not sanctioned”. The same reason why you can’t SSR Angular at google, because Node isn’t even sanctioned. This is all just a Hail Mary by Angular because their NPM numbers are dropping and just got surpassed by Preact of all frameworks.
My job skills are languishing at google because I’m writing Wiz and Angular all day
Whatever committee decided to silo the Angular reference docs from the usage docs has caused more harm than most of the hyperbolic non-examples I can come up with.
If you’re writing docs, please, please do me a favor and study the structure of the Django and Python docs.
> Have a reasonable developer tell me what a component viewProvider is and how it’s different from a provider using the @Component docs. It’s impossible. https://angular.io/api/core/Component#viewProviders
I linked to the reference docs, you linked to the usage docs. They're completely divorced from each other. There's not even a link from reference to usage docs.
For the reference docs to be useful you already have to know what the thing is, what it does, why you'd need it.
You can be on the component page where `viewProviders` is documented and get nothing from it if you're coming in fresh.
Why would ever design docs like that?
Angular is the only framework I've ever struggled to learn. It's a complicated framework but that's not the problem. The docs are the problem.
Short story, they put Angular signals into Wiz, which powers YouTube among others. No concrete Wiz announcements besides that. If you follow the Angular changelogs and plans, the video basically recaps these in a less dry manner - the same as seen during previous ng-confs. There's a short section at the end [0] showcasing a preview of what's in the pipeline but didn't receive much coverage yet, such as less boilerplate when authoring components.
I've been working with Angular for 2 years, then moved to Vue and have been with it for, idk 3-4 years now.
I like the theory of Angular, the modularity, the way it works, but I HATE rxjs and the complexity of it.
And the whole thing on top of rxjs, ngrx.
You can't just simply take one value and compare it, no you have to use pipes and rxjs.
Also there's an Angular discord and they're very hostile towards anyone not fanboi-ing Angular.
I was about 6 months into Vue and wrote how I prefer it, for its simplicity. Then I was constantly harassed until I was kick/banned. With another account I saw, "HEIL ANGULAR o/" written in the chat.
That's just stupid.
You have to be open minded.
Angular has good things, but Vue has good things too and even React does.
Never heard of Wiz before.
Almost a year ago I created an Android developer account I believe it's called and paid the bill.
The name on the invoice was wrong.
I wanted them to update the invoice
They responded with, "This is America, we do what we like" more or less.
Ok, no problem, I have better things to do.
Since I haven't published anything in almost 1 year, they're now threatening to close the account, I paid the $25 for.
My adsense account, no new sites are being approved anymore, previously I could add any site without confirmation, even if it was new.
I had a site that made them and me over 150k, but I got into a fight with my partner of that site and the main domain was shut down.
I took the content and published it on another domain.
Over 7 years of daily mp3 files and images.
The 1st domain had adsense approval, the new one didn't.
They didn't approve the 2nd domain.
Talking to them is not possible.
Google is spiraling downward.
They're essentially cutting into their own flesh.
Since Darth Sundar took over it's become progressively worse.
All the wrong and used hostile decisions.
I still use and like Go, but I'm afraid what will become of it in the future.
It's unlikely I'll return to Angular. It's just too time inefficient and also slower compared to the other frameworks.
>...but I HATE rxjs and the complexity of it. And the whole thing on top of rxjs, ngrx. You can't just simply take one value and compare it, no you have to use pipes and rxjs.
We're working on making RxJS optional. In v17.3 `@angular/core` no longer has a dependency on RxJS. In the long-term we'll enable a path forward without RxJS for other core modules as well.
That said, we're providing an interop package that enables even better RxJS support for people who make the decision to use it.
Edit: in v17.3 we have a minimal dependency on RxJS in ApplicationRef and NgZone, but in practice, it's unlikely that you'd need to use these APIs. In the following versions, we'll remove these dependencies and introduce interop APIs as well.
But on RxJS, yes, it is conceptually complex. I never quite understood whether one should use
- a container component with value-type @Inputs passed down
- a service emitting an Observable and subscribing to that, then passing value-types into the template
- an Observable as @Input
- now Signals? (haven't used those yet.)
Years later though I read a book on functional programming and the whole nightmare of arrays within Observables suddenly made sense.
Vue is the best framework I have ever used. I can't imagine why anyone would use anything else. Angular has gotta be the worst imho, perhaps Ember. There are big communities around these tools though so I guess the approach resonates with certain folks.
Angular has gotten progressively better but after picking up Vue3 I dropped everything else and haven't looked back. It's like front-end sanity has arrived.
Hey everyone, I'm working on this at Google and would be happy to answer your questions :)
The tldr; is that we see a lot of similar requirements from developers across Angular and Wiz, so we're looking for opportunities to reuse work. Good example is the Angular Signals library that's now used in all the YouTube Mobile Web. In a similar way, Angular is bringing more fine-grained code loading that Wiz offers.
Over time, we'll continue focusing on what's best for developers and incorporating the best from Wiz in Angular, and vice versa. At the end we can end up with one framework, or continue to coexist.
In the next couple of weeks we'll follow up with a blog post that explains our plan in more details.
tbh - killing of basic html Gmail was the last straw that pushed me to other mail provider... I usually use imap but once in a blue moon I need to access mailbox via browser and regular Gmail client is just abysmal...
> The tldr; is that we see a lot of similar requirements from developers across Angular and Wiz, so we're looking for opportunities to reuse work. Good example is the Angular Signals library that's now used in all the YouTube Mobile Web. In a similar way, Angular is bringing more fine-grained code loading that Wiz offers.
It sounds no different from Svelte borrowing concepts from SolidJS, or Vue borrowing ideas from Svelte, from you said — if it is just adding some features that Wiz has, it doesn't sound like merging? Why put a shocking title that Angular is merging with Wiz, when Wiz has no name recognition in the outer dev community — like we don't know what that means?
Hey, im working with angular for almost 5 years now.. What changes should we -developers - expect in the developer experience. In other words how we work with angular. Are you aiming for the "drop-in" replacement same as with ivy back then? Or new standards are comming with this? Thx!
At this point, we are not anticipating to have to develop a new rendering engine at this point, so it should be a more incremental effort than Ivy.
As an Angular developer you could expect new features and developer experience improvements. Also over time you’d see more of Angular used in popular consumer Google products.
I hate Angular with a passion. It's easily the most verbose, overly complex front end framework I've ever used which just takes the fun out of building web apps and make it a pure pain. I would rather work on a farm and shovel pig shit all day than work in Angular again.
My last job forced Angular on me, I quit after a while (not because of solely that reason) but I told them Angular was a bad choice and they chose to overrule me. Pretty funny now, they will have to endure the pain of migrating a large app which makes me feel good.
To offer a differing experience, I've been working in Angular for a couple of years now and personally like it quite a bit. I don't like frontend frameworks in general, but given the choice I prefer Angular over React.
I seldom see this opinion but I'm glad to read it. People complain about JSX on the React side but what on Earth am I reading when I see the templating language that Angular came up with? ngIf, ngBlah. Much worse than JSX, which is subordinate to JavaScript code, not equal. I also have been forced to use Angular at the workplace and it killed any fun making web apps had. People say Angular is great for enterprise because it removes the burden of deciding things, but this indicates an organizational problem being solved technologically. In other words: Never a good thing.
The template syntax of Angular isn't the problem most people have with it. It's the boilerplate, the forced OOP paradigm, having to work with observables even when they're not appropriate (thus having to understand "hot" vs "cold" observables), and up until recently, having to scatter each component across three different files. And to top it off, when the lack of expressivity is touted as a feature for taming complexity, that points to a development culture that doesn't sit well with me either.
I didn't care so much about the syntax but rather the over reliance on the subscriber pattern that you have to have like a subscriber to even read something as fundamental as query params. And the funny thing is that is will fire once and then again when the query params is actually set. So you will have an empty fire for when they are not yet set for some strange reason, presumably from when the observer is created.
The problem with Angular, especially as the app grows is that you will have many different subscribers that all listen on the same state changes, then fire them again so you will have code that just runs again and again and it's extremely hard to have a mental model on how the system work and what code runs when.
The code also easily gets super slow because you run something, it affect state, then it triggers something else that triggers something else that just happen to affect the first state, whoops now you have a loop. Even if the loop resolves, it's pretty much inevitable to get a loop sometimes if the app is complex enough, at least in my experience working with several other devs.
> the templating language that Angular came up with? ngIf, ngBlah
The new templating syntax is simply @if () @else () ... it makes it much clearer to read in many cases.
I never had a problem with *ngIf as long as you are controlling the visibility of one element. It became messy when you needed "else" statements in there.
I’ve hated working on every Angular project I’ve worked on. No matter the team, the experience level or complexity, it’s always been an absolute misery.
I cannot understand how it was invented/why it exists, how smart people at Google convinced themselves to use it. I cannot understand how they let it escape into the wild or even why those not forced to use it, choose it.
I know I’ve begged before for this, and it’s pointless, but please if you’re in the position to, please consider snuffing it out and starting over.
It's worse, everyone jumped from Angular to the React bandwagon. I use these types of things as litmus tests for if I want to join a new company/team. No sense in cussing under my breath all day every day. It's really hard to smile after you just invented a new vulgar phrase to describe mangled tech.
Agreed. I think the earlier days of Angular put a bad taste in many people's mouths. Many people who complain about Angular being verbose seem to only have experience working on smaller apps.
I suspect the migration effort will be fairly minimal. We recently migrated a bunch of stuff in a large codebase to use signals instead of observables and it was very straightforward. Couple of days for a junior engineer levels of straightforward.
I personally find Angular to be fine - sure there is a learning curve but that is true of anything (it's not like you can just pickup modern react and make anything functional without having to know how react works and spend ages picking libraries and installing and learning how to use npm, spending 6 months in a sanatorium getting therapy after realising you have to use npm for react and accept the shit show dumpster fire you are letting yourself in for by relying on npm, and deciding if you should use hooks or not and what about JS vs TS etc etc ). I find JSX in React an uncomfortable compromise that throws out a bunch of hard-learnt best practice in computer science (mixing up and confusing presentation with business logic in the same file). Separation of concerns is a good thing.
Angular will continue to be a solid choice for large professional outfits that care about things like maintainability, repeatable builds, dependency management, readability etc etc. Having Angular be the framework that powers websites like google.com and YouTube is just going to make it even more of a "no-brainer" choice than it already is if people are picking a web UI framework.
This seems to be true for many and happened to me. It is an absolute nightmare trying to upgrade Material. Now I’ve convinced my team to move to a different framework.
You can upgrade all the way to Angular 17 without having to adopt the new MDC components. Only this May with Angular 18 support for the legacy components will be dropped completely.
That’s the reason we’re currently migrating all our remaining usages of Material components to ng-zorro.
There are still issues with density not working well with some angular Material controls. This forced us to do some hacky css stuff. Some of the github issues have been open a long time now...
At least they'll be dogfooding Angular now hopefully.
Wiz has historically favored performance over ergonomics in the extreme. None of it is open source, and to be honest even if it was it's unlikely most people would want to use the mix of Java+Soy+JS+jQuery-ish API.
Interestingly both frameworks are around the same age (if you count Angular 1.0), but Wiz was kept internal.
What Sarah is referring to is both a big shift in Wiz to get modern ergonomics and a shift in the framework strategy to avoid having two entirely separate frameworks.
This unsubstantiated claim is being paraded around by Googlers all over Twitter. And there's literaly nothing to back up this claim. Have you seen the extreme performance of the websites it apparently powers?
Here's Youtube's extreme performance: https://twitter.com/dmitriid/status/1770911027766370648
0, https://changelog.com/jsparty/310
1, https://changelog.com/jsparty/312
It’s a lot of magic and all convoluted, it’s pathetic a company this large has this as their main offering, JSX is a positive move but it’s still lipstick on a pig as it’s not really JSX but just three Java templates under the hood for now. Signals aren’t the panacea they keep saying as they simply don’t scale in big apps since the data flow is all over the place.
Googlers use Angular at google because despite its garbage size and developer experience, believe it or not, the dev experience is miles better than Wiz. It’s also nowhere near the most popular internal usage framework idk why they say that. It’s Wiz by far.
And all this is because googlers just want React or Vue but are not allowed because they are “not sanctioned”. The same reason why you can’t SSR Angular at google, because Node isn’t even sanctioned. This is all just a Hail Mary by Angular because their NPM numbers are dropping and just got surpassed by Preact of all frameworks.
My job skills are languishing at google because I’m writing Wiz and Angular all day
The Angular team has been doing incredible work lately.
The only thing that I still don’t like about Angular is trying to learn anything from the reference docs.
Have a reasonable developer tell me what a component viewProvider is and how it’s different from a provider using the @Component docs. It’s impossible. https://angular.io/api/core/Component#viewProviders
Whatever committee decided to silo the Angular reference docs from the usage docs has caused more harm than most of the hyperbolic non-examples I can come up with.
If you’re writing docs, please, please do me a favor and study the structure of the Django and Python docs.
Like this?
- https://angular.io/guide/hierarchical-dependency-injection#u...
- (new docs site) https://angular.dev/guide/di/hierarchical-dependency-injecti...
I linked to the reference docs, you linked to the usage docs. They're completely divorced from each other. There's not even a link from reference to usage docs.
For the reference docs to be useful you already have to know what the thing is, what it does, why you'd need it.
You can be on the component page where `viewProviders` is documented and get nothing from it if you're coming in fresh.
Why would ever design docs like that?
Angular is the only framework I've ever struggled to learn. It's a complicated framework but that's not the problem. The docs are the problem.
Dead Comment
Short story, they put Angular signals into Wiz, which powers YouTube among others. No concrete Wiz announcements besides that. If you follow the Angular changelogs and plans, the video basically recaps these in a less dry manner - the same as seen during previous ng-confs. There's a short section at the end [0] showcasing a preview of what's in the pipeline but didn't receive much coverage yet, such as less boilerplate when authoring components.
[0] https://youtu.be/nIBseTi6RVk?t=4790
Also there's an Angular discord and they're very hostile towards anyone not fanboi-ing Angular. I was about 6 months into Vue and wrote how I prefer it, for its simplicity. Then I was constantly harassed until I was kick/banned. With another account I saw, "HEIL ANGULAR o/" written in the chat.
That's just stupid. You have to be open minded. Angular has good things, but Vue has good things too and even React does.
Never heard of Wiz before.
Almost a year ago I created an Android developer account I believe it's called and paid the bill. The name on the invoice was wrong. I wanted them to update the invoice They responded with, "This is America, we do what we like" more or less. Ok, no problem, I have better things to do. Since I haven't published anything in almost 1 year, they're now threatening to close the account, I paid the $25 for.
My adsense account, no new sites are being approved anymore, previously I could add any site without confirmation, even if it was new. I had a site that made them and me over 150k, but I got into a fight with my partner of that site and the main domain was shut down. I took the content and published it on another domain. Over 7 years of daily mp3 files and images. The 1st domain had adsense approval, the new one didn't. They didn't approve the 2nd domain. Talking to them is not possible.
Google is spiraling downward. They're essentially cutting into their own flesh. Since Darth Sundar took over it's become progressively worse. All the wrong and used hostile decisions.
I still use and like Go, but I'm afraid what will become of it in the future.
It's unlikely I'll return to Angular. It's just too time inefficient and also slower compared to the other frameworks.
We're working on making RxJS optional. In v17.3 `@angular/core` no longer has a dependency on RxJS. In the long-term we'll enable a path forward without RxJS for other core modules as well.
That said, we're providing an interop package that enables even better RxJS support for people who make the decision to use it.
But on RxJS, yes, it is conceptually complex. I never quite understood whether one should use
- a container component with value-type @Inputs passed down - a service emitting an Observable and subscribing to that, then passing value-types into the template - an Observable as @Input - now Signals? (haven't used those yet.)
Years later though I read a book on functional programming and the whole nightmare of arrays within Observables suddenly made sense.
The tldr; is that we see a lot of similar requirements from developers across Angular and Wiz, so we're looking for opportunities to reuse work. Good example is the Angular Signals library that's now used in all the YouTube Mobile Web. In a similar way, Angular is bringing more fine-grained code loading that Wiz offers.
Over time, we'll continue focusing on what's best for developers and incorporating the best from Wiz in Angular, and vice versa. At the end we can end up with one framework, or continue to coexist.
In the next couple of weeks we'll follow up with a blog post that explains our plan in more details.
Was basic HTML gmail deprecated because users so overwhelmingly preferred slow, bloated UIs that there was no demand for an alternative?
I’ll be happy to answer questions about Angular and our collaboration with Wiz :)
Deleted Comment
Even though it's claimed that it powers many of Google's websites, most of those websites are very far from being paragons of performance.
It sounds no different from Svelte borrowing concepts from SolidJS, or Vue borrowing ideas from Svelte, from you said — if it is just adding some features that Wiz has, it doesn't sound like merging? Why put a shocking title that Angular is merging with Wiz, when Wiz has no name recognition in the outer dev community — like we don't know what that means?
As an Angular developer you could expect new features and developer experience improvements. Also over time you’d see more of Angular used in popular consumer Google products.
We took some different trade-offs and listed the details here https://github.com/angular/angular/discussions/49683
My last job forced Angular on me, I quit after a while (not because of solely that reason) but I told them Angular was a bad choice and they chose to overrule me. Pretty funny now, they will have to endure the pain of migrating a large app which makes me feel good.
Make stupid choices, win stupid prizes.
It never seemed suitable for mostly-frontend devs, but it's probably perfect for mostly-backend ones.
Similar conversation 10 months ago:
https://news.ycombinator.com/item?id=35811256
The problem with Angular, especially as the app grows is that you will have many different subscribers that all listen on the same state changes, then fire them again so you will have code that just runs again and again and it's extremely hard to have a mental model on how the system work and what code runs when.
The code also easily gets super slow because you run something, it affect state, then it triggers something else that triggers something else that just happen to affect the first state, whoops now you have a loop. Even if the loop resolves, it's pretty much inevitable to get a loop sometimes if the app is complex enough, at least in my experience working with several other devs.
The new templating syntax is simply @if () @else () ... it makes it much clearer to read in many cases.
I never had a problem with *ngIf as long as you are controlling the visibility of one element. It became messy when you needed "else" statements in there.
I cannot understand how it was invented/why it exists, how smart people at Google convinced themselves to use it. I cannot understand how they let it escape into the wild or even why those not forced to use it, choose it.
I know I’ve begged before for this, and it’s pointless, but please if you’re in the position to, please consider snuffing it out and starting over.
Especially now with the new template syntax, signals, and other recent changes.
Deleted Comment
I personally find Angular to be fine - sure there is a learning curve but that is true of anything (it's not like you can just pickup modern react and make anything functional without having to know how react works and spend ages picking libraries and installing and learning how to use npm, spending 6 months in a sanatorium getting therapy after realising you have to use npm for react and accept the shit show dumpster fire you are letting yourself in for by relying on npm, and deciding if you should use hooks or not and what about JS vs TS etc etc ). I find JSX in React an uncomfortable compromise that throws out a bunch of hard-learnt best practice in computer science (mixing up and confusing presentation with business logic in the same file). Separation of concerns is a good thing.
Angular will continue to be a solid choice for large professional outfits that care about things like maintainability, repeatable builds, dependency management, readability etc etc. Having Angular be the framework that powers websites like google.com and YouTube is just going to make it even more of a "no-brainer" choice than it already is if people are picking a web UI framework.
That’s the reason we’re currently migrating all our remaining usages of Material components to ng-zorro.
[1] https://blog.angular.io/angular-v16-is-here-4d7a28ec680d