Angular people worked really hard on the version 2 of AngularJS… Sorry, not AngularJS, but Angular. Only Angular. Atleast that’s how the official people address it now. AngularJS means version 1.X and Angular means the version 2 and beyond.
Since the time Angular 2 was in alpha, there was a terror among some people out there in the community (including me) as the new angular was being written and will be best usable with typescript. Even the concept of data flow, binding, routing etc. were about to get changed. That means a hell lot of work for those who want to upgrade from 1.X to version 2. Even today I can see the industry is still in 1.6 because they are not really in a position to upgrade their applications.
This scary feeling about Angular releases still exists today and that’s the reason when Google said it’s going to release the next major versions soon, people started thinking they will again have something big and drastic changes.
Fortunately, this time it’s not the case
Why another major release?
First of all, let me explain how the version will work for Angular from now on. Probably you already know about semantic versioning, the image below also describes it.
As shown in the image, the last number will indicate the patch releases, which means small bug fixes etc. For new features, without any breaking changes the second number in the version will get changed and all the breaking change releases will be with the change of the first number of the version.
So any breaking changes in the next Angular?
Probably not. Why I said probably not, is because of the reason why Angular is moving into the next major version.
Currently Angular uses Typescript 1.8 and planning to upgrade to 2.1 (or probably 2.2) of Typescript. Now TS 2.1 has breaking changes with respect to TS 1.8. So, technically if Angular upgrade itself from TS 1.8 to TS 2.1, it is a breaking release; even though there won’t be any extra breaking changes by the Angular developers. Upgrading the typescript version lead Angular to release a new major version. But we never guarantee bugs 😛
Why that new version is not 3?
Angular is being developed in a
MonoRepo. That means a single repo for everything.
@angular/router etc are in the same repo and may have there own versions. The advantage of MonoRepo is, you don’t have to deal with the versioning of the code dependencies.
Now the problem is with the
@angular/router which is already in a 3.X version. And that’s because of some active and huge developments on the router section, like route-preload.
Now releasing Angular as version 3, with it’s route on version 4 will create confusion (this confusion is already there, that’s why they want to resolve it). To avoid this confusion they decided to skip the version 3 and release with version 4.0.0, so that every major dependency in the MonoRepo are on the right track.
More on upcoming releases
First good thing is, the Angular people said they are not going to release any version with that drastic changes which is there between version 1.X and 2. So a great relief.
Another good thing is, Angular releases are now tightly scheduled and disciplined. They will release one patch in each week, a minor release in a month and a major version change twice in a year (March & September). So now you can schedule your upgrade process in your projects cause you already know when you are going to need it.