AngularJS has an infamous learning curve. Many different concepts led to confusion, including but not limited to controllers, providers, factories, constants, directives, services, scopes, filters, modules and more.
Way cleaner, isn’t it? Well, that’s also because we use a different language here. Which brings us to the next point.
You might ask: Wait, TypeScript? That’s this language from Microsoft, isn’t it? And Google is writing Angular 2 using TypeScript? Yes, that’s true. Microsoft even extended TypeScript especially for Angular 2 by adding annotation support to the language (e.g. @Component). This marks a completely new level of cooperation and demonstrates what open-source software is capable of.
As noted above, AngularJS includes many different concepts and has a steep learning curve. Done wrong, your app can become quite slow: The communication between components and the detection of changes (in order to update data bindings) are crucial here.
In Angular 2, change detection is based on data and not on changes in the DOM. The components of Angular 2 form a tree where changes are populated from the root to the leaves, i.e. top-down, depth-first and thus only in one direction. This results in an application behavior that is not only more predictable, but also more performant.
But don’t worry: This doesn’t mean that there’s no two-way data binding in Angular 2. You will be able to achieve the same effect.
Angular 2 is built for the web of the future. While it’s currently in Beta, it’s expected to be released somewhere in 2016. While the core concepts are solid, some APIs still are subject to change. If you are starting a new software development project today, you should choose Angular 2 over its predecessor. The new concepts and features both improve development speed and ensure that your app is ready for the web of the future.
Now it’s your turn: What will you build with Angular 2?
Thanks to my colleague Thomas Hilzendegen for proofreading this article. The logos of AngularJS and Angular 2 are licensed under the CC BY-SA 3.0 Unported License. The Angular 2 artwork is licensed under the CC BY 4.0 Unported License.