Open Source Angular 8.0 Development Platform Ships

Angular 8.0 was released this week, described as a major release of Google's open source development platform that can be used in Web, mobile Web, native mobile and native desktop applications.

As a major release, v8.0 provides improvements and new features for the entire platform, including the framework, Angular Material (modern UI components) and Angular CLI (command-line interface).

"This release improves application startup time on modern browsers, provides new APIs for tapping into the CLI, and aligns Angular to the ecosystem and more web standards," the Angular team said in a May 28 blog post.

While the post details many new features, it provides no information on Ivy and Bazel opt-in previews that have generated a lot of developer interest in the Angular camp.

Ivy is the new template compiler for Angular. A Feb. 8 post titled "A plan for version 8.0 and Ivy" said:

The opt-in preview will allow you to switch between the Ivy and View Engine build and rendering pipelines in your project. Details on how to do this will be provided in the upcoming beta builds. Changing this will switch your application to be built with Ivy runtime instructions instead of the ViewEngine runtime. Your application will be built with the Ivy compiler, and any dependencies you use from Angular or other 3rd parties should keep working as we’ll run them through our compatibility compiler. The preview will allow you to identify any issues with dependencies and help us to improve our compatibility.

Bazel is a tool for tracking the dependencies between different packages and build targets. A Ninja Squad post says, "Bazel is a build tool developed and massively used by Google, as it can build pretty much any language. The Angular framework itself is built with Bazel.

The key advantages of Bazel are:

  • The possibility of building your backends and frontends with the same tool
  • The incremental build and tests
  • The possibility to have remote builds (and cache) on a build farm"

However, this week's announcement was light on Ivy and Bazel updates, stating only: "We know there’s lots of excitement for our forthcoming opt-in previews. We’ll be providing individual updates on these next week on this blog, so stay tuned!"

Some highlights of the release that were detailed in this week's announcement post include:

  • Support for TypeScript 3.3: Older version have been dropped.
  • Differential Loading by Default: "a process by which the browser chooses between modern or legacy JavaScript based on its own capabilities."
  • Route Configurations use Dynamic Imports: Lazy loading of application parts using the router, replacing custom syntax with industry standard dynamic imports.
  • Builder APIs in the CLI: Facilitating processes like build and deployment. More information on this is available in a separate post.
  • Workspace APIs in the CLI: This affects developers using Schematics, a template-based code generator that supports complex logic. "Previously developers using Schematics had to manually open and modify their angular.json to make changes to the workspace configuration. With 8.0, we’re introducing a new API to make it easier to read and modify this file."
  • Web Worker Support: Web workers allow for offloading work to a background thread, which can speed up CPU-intensive applications. Developers can now generate new Web workers from the CLI.
  • New Deprecation Guide: The team, in an effort to help developers find Angular deprecations and removals, provides a comprehensive list of such in the new Deprecation Guide.

All of the above and much more are presented in greater detail in the project's changelog (including info on the May 30 8.1.0-beta.0).

The Angular team's announcement thanked 286 contributors who helped develop the open source project.

About the Author

David Ramel is an editor and writer for Converge360.