Should we use AngularJS? Should we use it now?

In light of the announcement by the AngularJS team to release AngularJS 2.0 as a total rewrite, it is a valid question to ask: Should we build new applications on AngularJS 1.x? And given that 2.x is not available and may not be available until 2017, should we even use AngularJS at all?

AngularJS logo

We think the answer to both questions is “yes” for the following reasons:

  1. AngularJS 1.3 is the best client-side MVC framework available.
  2. According to the AngularJS project team, Google has over 1200 internal applications based on 1.x and therefore has a vested interest in supporting 1.x throughout a reasonable application lifecycle.
  3. AngularJS project teams have been split up with one group focused exclusively on 1.x and another group focused on 2.0.
  4. As near as we can tell, 2.0 will not be available until at least 2017 and 1.x will likely be supported for some time after that.
  5. 1.x is a viable, stable, low-bug product. It works now, and it’s the best choice.
  6. ECMA Script/ Javascript is in the process of change, and browsers are in the process of change. In other words, things are changing, and it’s no different than any other information technology component.
  7. There are some competing client-side MVC technologies like backbone.js and Ember. But the reality is there’s no guarantee these projects will be around or not undergo similar changes in the next few years.
  8. When AngularJS 2.0 is released it will be able to live in the same system with 1.x apps. This means new projects will be able to take advantage of 2.0 enhancements while preserving the same MVC philosophy and service orientation as 1.x, even if not the exact same syntax.

These are the primary reasons, but the overarching point is that AngularJS 1.x is a stable product and the best tool for the job. It has a reasonable (3 years+) lifetime and even if Google decides not to support it post-2018, it is likely that some other entity will pick it up.

AngularJS is a great MVC based product that encourages service orientation, separation of concerns, and loose coupling. These patterns will not change with AngularJS 2.x.