It was at the ng-Europe on September 22-23, 2014 when the Angular team came with a huge surprise: "We're going to build Angular 2." No controllers, no scope, completely different from ground-up, totally written. Oh, and no migration path. The result: grumbling among the community. Now, quite exactly two years later, we obviously know better, and finally Angular 2 has been officially released.
Angular 2 is going to have breaking changes only every 6 months from now on. So, the next update will be around February with Angular 3. Yes exactly, they’re also finally switching to semantic versioning which is a huge win in my opinion. That way you can easily recognize whether a release is breaking or not.
For easier upgrading, they will start releasing an open source tool they’ve already been using internally, which aims at helping you to semi-automatically upgrade your application, even in case of breaking changes.
Obviously, the team will continue to do regular releases of non-breaking changes.
In the next couple of months, they’re heavily working on animations, helping push web workers out of experimental status, many improvements to mobile (especially for Progressive Web App support), and improved support for more universal languages like Java and Go
A release of a fully functional suite of material design components is very close as well!
Here are the interesting questions/answers from the Q&A session. Importantly, the questions and answers are paraphrased by myself based on the live announcement (see video at the end).
Would you expect the runtime compiler during app development or is the goal always to use the AoT compiler?
@robwormald: We’d like it to get to a point where we can use AoT all the time as the default. We’re gonna plug it into webpack very soon, so it should definitely be doable there.
What’s the best place for developers learning Angular 2 to ask questions and get help from the community?
What’s the vision of the development experience with AoT?
@robwormald: Smaller and faster.
Will the core team dedicate more resources to the Angular CLI?
Yes, the team is definitely committed to investing more on the CLI and improve it. One of the things that has been done currently is finally finishing the webpack migration which is now available.
Do you guys have plans to make the CLI more configurable?
There are a lot of requests for that currently and the team is working on it and wanna support in the future. The current direction is to build an add-on system.
Some other current ideas are around to build a kind of an “eject button” which allows you to get out of the CLI at some point if you need way more flexibility.
You’re going with semantic versioning. How will you support compatibility between the different pieces within the project?
@IgorMinar: That’s all semver is all about, it helps manage those dependencies.
@robwormald: You will most likely see the core libraries move in sync and others around it a bit behind.
@IgorMinar: A comment about the breaking changes. The team will make the breaks as smooth as possible, by deprecating APIs and therefore to give enough time to migrate.
To moduleId or not to moduleId?
@robwormald: Strangely, one of the most difficult problems we’ve had. There’s a very good solution for web pack, and we’d like to have the tooling to handle this for you. There are plans for how to do it smartly for SystemJS. It’s not on any deprecation path, so you it would be totally fine to use it.
How long will Angular 1 will be supported?
@bradlygreen: As mentioned often, we will continue to support Angular 1 as long as the majority of people uses it. Currently:
- 1.3 million people use Angular 1.
- 480k already use Angular 2.
But anyway, it’s not that it gets deleted from the web, even after the team continues to actively support it.
How close are we to open sourcing the tool that auto upgrades Angular 2 projects across versions
to open source tool that automatically upgrades angular
@Jakeherringbone: We’re doing it incrementally and we’re making some progress. Contributions have been made to tslint so that the type checker and language type checker can be used to make changes in the Typescript code. We also started to work with Minko to use the Angular language service to make the templates type aware s.t. changes can be applied to the template code. The hope is to have it available by the time Angular 3 comes along with breaking changes.
Here’s the recording of the live announcement.
Where to Go From Here
Here are some starter links.