When you think of the new version of Angular, you think of it as Angular 2. Every article you read about the follow-up to Angular 1.x refers to it as Angular 2.0.
Well, this might come as a surprise to some, but the Angular team released their December 12th meeting notes and contained within them, are some interesting tidbits which could have massive consequences.
The Angular team are dropping the version number. From here on in, Angular 2 will be known as Angular. They’re releasing two major versions per year. I believe this was mentioned a while back, but in all honesty, most people probably aren’t aware of the change.
They are also not releasing an Angular 3.0 instead they will be releasing an Angular 4.0 so they can “align core with router, which is already at 3.0”
So we’ll be seeing Angular 5, Angular 6, Angular 7 and so on, two majors per year. This is going to get out of hand quite quickly and cause a lot of confusion.
This is going to be a marketing nightmare for the Angular team. While some might eventually start referring to it as Angular, a lot of developers will continue to refer to it as Angular 2.
A lot of the books, repositories and other resources out there right now also refer to it as Angular 2. It seems the Angular team have painted themselves into a corner here.
The change brings Angular (2) inline with semantic versioning principles where the major version is bumped when there are breaking changes. This means the Angular teams plans to release breaking changes with unknown severity two times per year. Front-end development is already unstable as it is and just when you thought things were settling down, this happens.
The Angular team are taking this approach of, “the breaking changes won’t be a big deal, don’t worry” but without knowing what is potentially coming down the pipeline, what potentially big breaking changes the team has planned, who can honestly know that? We’re talking about a framework that saw its router component rewritten from scratch three times.
What about Angular 1.x?
The biggest issue here is the Angular team want developers to start referring to Angular 2 as just Angular. You’re not an Angular 2 developer, you’re an Angular dev. This would be all fine and dandy if Angular was new, but they seem to be forgetting about Angular 1.x
While the Angular team wants people to upgrade to Angular new, the truth of the matter is many enterprises and large companies are running Angular 1.x applications. Expecting businesses to just upgrade applications possibly only a couple of years old with thousands of lines of code and files is unrealistic.
If Angular 2 is now just Angular, what does that make Angular 1.x, what do we call that?
If Angular 2 is now Angular and Angular 1.x which many still use is also Angular, how do we differentiate between Angular 1.x resources (of which, there are many) and Angular 2 resources? It’s going to be a massive clusterfuck.
Now when you install a plugin or encounter a Github repository, you won’t know which is what, because the Angular team are encouraging developers to drop the version labels from their repos. Your
ng2-awesomelib now becomes
angular-awesomelib and because Angular 1.x is still quite widely used, how do you know what is what?
In their quest to piggyback off of the recognition and brand awareness that Angular 1.x had, the Angular team foolishly called the new version Angular 2 when it should have been called something completely different.
The illusion of open source
If you believe that Angular is a true open source project, then you are wrong. These latest changes just further prove that Angular is a design by committee framework controlled by a handful of core team members making all of the decisions. The lack of planning and mistakes the team has made prior to this alone is astonishing.
The whole point of open source is everyone gets to contribute, you ask the community for feedback and improvements, did the Angular team even consult the team before deciding to drop the version number and release so often?
What is the Angular team doing?