Google Angular Lead Sees Convergence in JavaScript Frameworks

Minko Gechev, the lead for Angular at Google, recently made a striking claim: Angular and React, two of the most popular JavaScript frameworks, are becoming increasingly similar. During his talk at dotJS, Gechev noted that while the syntax and structure may differ — Angular leans on classes and templates, while React uses functions and JSX — their underlying purpose and mechanisms are converging.

At the heart of both frameworks is a shared goal: keeping the application’s state in sync with the UI. Gechev explained that whether it’s React’s hooks or Angular’s zone.js, the end result is the same — traversing a component tree to detect state changes and reflect them in the DOM.

Now, Gechev is tasked with an unprecedented initiative at Google: unifying two distinct frameworks — Angular and Wiz, an internal Google framework — into a more cohesive platform. This convergence, he suggested, is a reflection of a broader trend in frontend development, where once-distinct frameworks begin aligning in both concept and execution.

One of the key similarities Gechev highlighted was how both Angular and React approach component tree reconciliation. For instance, when a user changes the quantity of an item in a shopping cart, both frameworks will propagate that state change through their component hierarchies and update the view accordingly, using virtually identical algorithms.

Gechev backed up these claims with performance benchmarks, revealing that both Angular and React perform similarly in common scenarios — struggling with full tree updates but handling partial updates effectively. He acknowledged that real-world apps often contain thousands of components, making efficient change detection essential.

To address performance concerns, Angular has made notable advancements in reactivity. Angular 16 introduced Signals, a reactive primitive that automatically tracks dependencies and invalidates related computations when state changes. Other frameworks — like Solid, Vue, Svelte, and Ember — have adopted similar ideas, pointing to a broader alignment in reactivity patterns.

This convergence is also visible in how use cases for Angular and Wiz have overlapped. Angular has typically served enterprise platforms like Google Cloud and Analytics, while Wiz has powered consumer-facing products such as YouTube and Search, where performance is critical. However, as expectations around responsiveness and user experience have risen across the board, both frameworks have begun solving similar problems — and adopting similar solutions.

Screenshot

The integration of Angular’s Signals into Wiz, and vice versa, has already delivered noticeable gains. For example, applying this combined architecture to YouTube’s smart TV interface led to a 35% performance boost. Gechev mentioned that Signals even inspired a broader proposal to introduce them to the JavaScript language itself, now in stage one of the standardization process, using Angular’s implementation as a reference.

While convergence is promising, it’s not without complexity. Merging two frameworks involves significant code refactoring and stability testing. Gechev noted that every change to Angular is tested against thousands of internal Google apps to ensure backward compatibility, some of which contain millions of lines of code.

Looking forward, Gechev suggested that additional convergence might occur around other frontend strategies, such as event replay and fine-grained code loading. Event replay helps ensure UI responsiveness by tracking user interactions before the JavaScript needed to handle them is fully loaded. Angular is currently testing this concept by modernizing Google’s JS Action system and integrating it into Angular.

One of Angular’s recent innovations in this space is Deferrable Views. These allow developers to defer the hydration of parts of an application until certain conditions are met — for example, when a user interacts with a navigation element. Instead of loading the entire app upfront, Angular can now load just the code necessary for the triggered interaction, reducing initial load times and improving user experience.

This technique aligns with ideas popularized by frameworks like Astro, which champion partial hydration or “island architecture.” While Angular’s existing structure doesn’t natively support such implicit behavior, deferrable views offer a developer-controlled way to achieve similar outcomes.

Gechev emphasized that while these improvements are significant, they’ll roll out gradually. Developers using Angular can expect continued enhancements without major disruptions. He also highlighted Google’s intention to open-source proven features, allowing the broader ecosystem to benefit.

Some developers might still point to differences like React lacking dependency injection or Angular not supporting React’s context API. But Gechev argued that these are surface-level distinctions. At their core, both mechanisms allow injecting data into components based on usage context — they’re just different tools for the same job.

He concluded with a message for developers trying to choose a framework in today’s landscape. As more features become standardized across platforms, the differences between frameworks matter less. What’s more important, Gechev said, is choosing a stable, mature solution with a supportive community.

“When picking a framework, don’t overthink it,” he advised. “They’re all moving in the same direction. Pick one that feels good to work with, has a solid foundation, and meets your long-term needs.”

Screenshot

What to read next