The news came as a surprise to everyone when the team lead at Google, Igor Minar, announced that there will be no Angular 3 and the next version they would be launching soon would be the Angular 4. The reason for this has been attributed to the correlation of the number of upgrades with the Angular version 4 router which has planned for usage.
Google has laid out a road map which sees about eight beta releases of Angular 4 which are scheduled to come out between December 2016 and February 2017 with the general release slated for March. Minar however, has released a statement stating how the version names should not be given too much importance as too many releases can make it confusing.
What’s new with Angular Version 4?
Google’s plan for the new version is to make it as backward-compatible with Angular 2 as possible with an effort to improve compiler error messages. Their aim is also to focus on reduced code generation and emphasize improvements in tooling.
Angular’s upgrade plan also involves moving from Typescript 1.8 to Typescript 2.1(Microsoft’s superset version of JavaScript). Even though the industry is currently functioning on TS 1.6 as there are very few in a position to upgrade their applications, the moving away from TS 1.8 to TS 2.1 would probably not imply any breaking changes. The reason for this is that TS 2.1 has breaking changes with respect to TS 1.8, so even if Angular does upgrade itself from TS 1.8 to TS 2.1, this will be a breaking release without the extra breaking charges by Angular developers. It is essentially the upgrade of the Type Script version of Angular that leads to a major release.
Why not 3?
Angular is developed in a MonoRepo. (The repository pattern for Angular). This means that there is a single repository for everything and therefore have their own versions. The main advantage of MonoRepo is that there is no need to deal with the versioning of the code dependencies. Examples of MonoRepo are @angular/core, @angular/compiler, @angular/router.
The problem lies in the fact that @angular/router is already in 3x version, the reason being some active re-developments on the router section. Releasing Angular as a Version 3 with its route already on Version 4 will create a problem, so Google decided to go straight to version 4, so that every dependency in the MonoRepo are essentially in the right direction.
What’s next on the releases?
Google has clearly stated that there will be no drastic changes between 1X and 2, as they have experimented within Google and said the issues should be treated as trivial. Since Angular releases are now going to be disciplined and tightly scheduled, with beta releases in a month and 2 major releases twice a year, it becomes easier to upgrade one’s projects in line with the releases.