Google engineer outlines what’s next for Angular
Google engineer outlines what’s next for Angular.
At the recent Progress 360 conference, Emma Twersky, a developer relations engineer at Google, gave a talk on the topic “What’s New with Angular”.
A large part of the talk focused on past iterations of Angular and how these changes lay the groundwork for what’s next for Google.
Twersky revealed that Angular version 15 is scheduled to be released in November.
At that time, Google will introduce friendly stack traces to help pinpoint the location of code errors, as well as a way to optimize image components, a move that will significantly improve the site’s First Contentful Paint.
Google is rapidly iterating on Angular, with versions 12 and 13 released last year and version 14 this June. All of this work (including Ivy) is actually “behind the scenes” laying the groundwork for future framework improvements, Twersky said.
Ivy is Angular’s next-generation compilation and rendering pipeline, replacing View Engine as the default in Angular version 9.
“It’s a complete rewrite, and the best analogy I can give is that it’s like changing the engine of a car while it’s still in motion.”
She noted that this new engine provides Angular with better type checking, error reporting, debugging, and smaller bundle sizes; but what it really does is enable future improvements planned by Google.
With the completion of Ivy, Google’s computing resources were reduced by 90%, which in turn resulted in a roughly 50-minute reduction in build time for Google’s largest Angular application.
At the same time, the Angular team also launched a Request for Comments (RFC), an opportunity to get feedback and introduce experimental changes.
In versions 13 and 14, Google also started releasing developer previews designed to help develop the framework faster.
“If we have a design document, why don’t we share it, why don’t we battle test it with the millions of developers who use Angular? Why don’t we think about some interesting cases ahead of time? We’re really gathering the Angular army to solve the problem together .”
Currently, Google has published more than 15 RFCs. Two of the biggest RFCs mentioned the removal of standalone components, NgModules; Angular-specific modules that configure injectors and compilers to help keep related things together.
Several fixes have also been made: better support for debugging and diagnostics, error message specifics and guidance, and support for Angular development tools through collaboration with the Chrome team and third-party sources.
Twersky points out that NG Modules are another important point about Angular that new developers must know.
Based on community feedback, the oft-maligned NgModule is about to be phased out (partially); Angular 14 introduces an alternative way of writing applications – Standalone Components, Directives, and Pipelines.
The term “standalone” refers to a component, directive or pipeline that can be used independently of NgModule. “Although you still need to use the core and external NgModule, you probably don’t need to create a new NgModule”.
“Standalone aims to simplify all of this and simplify the onboarding steps. By introducing the standalone true flag, you can bootstrap your components directly, and no modules are required.”
The idea, she explained, is that the entire application can now be standalone.
This is a breaking change, powered by a new API created by Google; it also promises that any changes to the API will be backward compatible.
Angular 15 will also provide full standalones and support.
“We have something that benefits everyone, which is zone JS-enabled asynchronous stack fetching by default, but we just call it better stack traces. This is through another collaboration with Chrome, even though using not Open source code written by developers and where bugs occur, also makes it easier to reduce relevant content.”
Also, v15 promises to remove some unused code from the codebase.
“What we want to do and Northstar provides is just what you need… so if you don’t use it, we don’t need to provide it for you anymore. In Angular, we have a lot of code, but your app Programs don’t use all of this code. So at some point in compilation, we can get rid of a lot of code that you don’t use.”
Some of the other changes Google is considering include:
- The CLI configuration is hidden by default.
- data center. MDC Web is a library created by the Google Material Design team that provides reusable primitives for building Material Design components. According to the Angular team’s roadmap, they are integrating these primitives into Angular Material.
- Ask for advice on hydration and other trends.