Written by Joe Eames, Founder, ng-conf (the AngularJS conference)
Angular 2 is just about to release, and many developers are asking themselves, “should I learn Angular 2?” The short answer is yes, but we’ll look at some of the reasons why.
First, it’s a good idea to understand where front end web development is at currently. A few short years ago, there were very few choices, but today, we have quite a few very good frameworks to choose from. This is a better situation than when there were no choices, but it can also lead to analysis paralysis, where we can’t make a decision because there’s just too many good choices. In addition, we have seen a recent rash of tool fatigue - developers complaining that there is just too many moving pieces in even a simple app, and for new developers especially, this can be a particularly challenging environment in which to try to get work done.
Angular 1
Although Angular 1 is a great framework, it’s beginning to show its age. Even though it is still gaining popularity, there are some fundamental problems with it. First and foremost is its performance. Angular 1 is fine for many sites, but it doesn’t take long before a developer can encounter a situation where Angular 1 experiences some speed problems. Second, Angular 1 was not built with modern tools and standards in mind. If you want to use it with a module system, you will be quickly disappointed with how much friction you experience. Finally it suffers from a bit of ambiguity in some of the different pieces. With the most recent version of Angular, you can accomplish the same thing with either a controller, a directive, or a component. So which one is the right one to use in a given situation can be problematic.
Other Frameworks
Although there are some great frameworks available now, they each have a few problems that a developer can experience. First off, many of these other frameworks have a much smaller adoption than Angular, so for both your career, and when trying to hire experienced talent, that can be a challenge. With Angular 2, it will become a natural choice for Angular 1 shops to write new projects in Angular 2, which will likely mean that the adoption for it will be very widespread.
Second, many other frameworks are partial solutions, unlike Angular, meaning that you may have to put together a lot of different pieces before you have everything you need to write your application.
Finally, some of the other frameworks were developed with an eye towards solving a specific kind of problem, and therefore they have a hard time existing in a typical enterprise environment with the usual trappings that come along, such as unit testing, localization, and accessibility.
Angular 2
Now that we’ve identified some issues with both Angular 1 and other frameworks, let’s look at how Angular 2 addresses these issues.
The first item of discussion will be performance. Angular 2 is fast. Blazing fast. No framework is faster. Some are right there with it neck and neck, but nothing is faster than Angular 2.
Next, Angular 2 was built with modern tools and standards in mind. It supports ES6 modules, tools like webpack and SystemJS, and has even helped push the standards by helping to pioneer decorators in ECMAScript.
The mental model of Angular 2 is much simplified from Angular 1. No longer do you have to choose between three similar concepts. Components handle everything.
Angular 2 is the natural successor to Angular 1, so it’s poised to become just as popular, if not even more so than Angular 1 was. That means that learning it will likely be good for your career, and down the road, you will have an easier time finding experienced Angular 2 developers.
Angular 2 is also a complete solution. It includes rendering, compilation, binding, server communication, and unit testing all together. No worry about trying to choose from twenty different libraries when you need to actually make a HTTP call.
Finally, Angular 2 was built from the ground up to solve the same problems Angular 1 solves: everything from simple demo apps to large enterprise-scale applications. It is highly testable, supports accessibility and localization.
Conclusion
So, should you learn Angular 2? The answer is pretty obvious. It will definitely be a major player in the JavaScript framework scene for the foreseeable future. There’s no better time than today to learn Angular 2.