Over 350 people have rated [5/5]
Angular 8 was just released on May 2019, but it was originally planned to be released on March or April, it did not work out as planned. With the new release that has been made available, it is important to know what all has changed, so you can decide your approach to Angular 8. Since Angular 7 is going to be supported until April 2020, you can decide if it’s worth upgrading or not if Angular 7 already meets all your requirements.
Let’s us walk through all the new features presented in Angular 8
For a long time, the Angular team has been talking about the new Ivy renderer that the team has been working on. The team has spoken as well as written about it on multiple occasions, we have not seen an official release. All that is about to change.
The Angular team has confirmed about the inclusion of the Ivy renderer in their opt-in preview. Many developers were hoping for a final release of Ivy but that is not what we are getting in this release. A preview is many times better than no view at all. Trying out the preview will allow you to see how well your current Angular applications work with the Ivy renderer.
If you are not that familiar with Ivy, it is something you should care about. If the user experience is important to you then definitely Ivy is something you should know. Although the framework has made huge improvements about the size as well as the runtime speed since the days of Angular 2, Angular apps often tend to be on the heavier side when it comes to filing size and memory usage.
Ivy attempts to change all of this when you compare with the current Angular View Engine, Ivy provides the following advantages
The code generated by the Angular compiler is now much easier to read and understand by humans.
Rebuild times have become significantly faster
Decreased payload size, so your browser will take less time to download and parse your Angular applications
Better Template Type Checking, so the developers can catch more errors at build time and prevent your users from encountering them at the runtime
Apart from all of this, the Angular applications aim to be fully compatible with the existing Angular applications, so ideally you will be able to get all the benefits of Ivy without changing your apps at all. There will be some bugs and hiccups though. That’s why it’s helpful to try and build your current Angular apps using Angular 8 and Ivy.
If you run into any errors, you can let the Angular team know so that they can either fix the issue or advise you on what to change to be Ivy compatible and ready. There are a couple of areas where Ivy is lacking- in particular for internationalization and Angular universal support are not fully compatible yet. So if your Angular app supports multiple languages and/or uses rendering on the server-side then don’t expect it to be ready to work with Ivy just yet.
One more drawback is that some users have encountered is the Angular Material. Apps that use Angular Material don’t seem to play well with Ivy, as of the latest Angular Beta, Please note this when experimenting with Angular 8 (Angular Material will be updated to work with Ivy eventually).
Outside of Ivy, there are a few changes to look forward to in Angular 8
Angular 8 Additional Changes
One of the most important changes that the Angular team describes as the
The Angular team is also adding a backward-compatible mode to the Angular router which will make it easier to upgrade legacy Angular apps to modern Angular. In the right world, we all would have been able to upgrade or Angular 1.X apps to Angular 2+ right away.
In the real world, this doesn’t always happen. To this day there have been massive legacy Angular apps happily chugging away serving businesses and making users happy. They have not been upgraded for a simple reason, there is not much ROI in doing a complete rewrite.
The end is near for Angular 1.X. It is not going to see any development and will only be receiving security patches until the end of its long term support period until June 30, 2021. For the teams working on large Angular 1.X apps, the time to finally make the transition is now. (And the changes to the Angular router will make the transition smoother). The router updates will make it smoother in order to lazy load the parts of Angular 1.X apps inside a modern Angular app using $route APIs.
Angular 8 Support for Web Workers
A small but welcoming new feature in Angular 8 is that it has improved support for building web workers with the Angular CLI. For readers unfamiliar with web workers, they are an important innovation for front end web development that will make it possible to group CPU intensive work in a separate hardware thread. This is indeed great news for front-end developers because prior to web workers the applications were limited to using a single thread.
The Angular CLI will also be getting another feature- opt-in usage sharings. This will provide you the opportunity to opt-in to sharing telemetry about your Angular CLI usage with the Angular team. This is the right approach taken by the Angular team.
Some of the development tools have been known to share telemetry on an opt-out basis. They do it by default until you tell them not to. Some even share telemetry about how you use the tools without giving them any way to opt-out of this sharing. Asking for your consent is the right approach followed by the Angular team. Many of us will happily share our usage details in order for the development of the platform.
Support for TypeScript
Finally, Angular 8 is going to include updates to the latest and greatest versions of Angular dependencies which already includes tools such as RxJS and TypeScript. This seems to be a tiny improvement but is a welcoming one. Keeping up with TypeScript is great because the TypeScript team always seems to pack in useful features into every release.
Although there should be nothing to stop you from manually upgrading to the latest version of TypeScript in your projects, it is great to see the Angular team is keeping up with what TypeScript has to offer and the new apps that are generated from Angular CLI will also use the latest version of TypeScript by default.
We have seen that the additions to Angular 8 are not huge outside Ivy. Although they have been nice to have, they are certainly not critical for most applications
With that in mind, you should upgrade to Angular 8 or stick with Angular 7. In nearly every case the answer is yes. You should consider upgrading to Angular 8, since there are not any large breaking changes, in most cases, your applications will work as-is without any changes. With the additions to enable differential loading, you shall notice performance gains for free.
We had a look at the Angular 8 new features and the performance difference. If you’re looking to hire Angular developers then do contact us, we have expert developers ready to onboard for your web development project.