Michael J. Bennett

This post is about the next generation of asynchronous JavaScript tools and it assumes basic familiarity with promises and callbacks.

EcmaScript 6 (ES6), aka ES2015, is the latest JavaScript standard and its features are increasingly being supported by modern browsers. Despite the fact that it's currently 2016, some features of ES6 are still not supported by any modern browsers. This lack of complete browser support for ES6 is the main reason why I stuck with ES5. Aside from browser support, my other issue with ES6 was that its features seemed to be almost entirely superfluous sugar.

Change detection at face value is the act of determining if something is the same as it was at a previous time. In the case of this article, the thing that has changed is a web browser's Document Object Model (DOM) and the detection is done by Angular 2. This is an important feature of any web application's view layer and Angular 2 provides developers with many performant and useful tools for detecting change.

In the years since Angular 1.x was released, web development tools have continued to rapidly evolve. Angular 2 takes full advantage of the feedback from Angular 1.x users to shape many of the new features.

Angular 1.x still works. Even Angular < 1.2 still works and packs a powerful punch for less than a hundred kilobytes; it's more backwards compatible too. By the time Angular 1.4 came out the framework had grown to nearly one hundred and fifty kilobytes, and dropped support for some older browsers. Angular 2 is now in beta and it is over half a megabyte, and more or less requires developers to use language features not yet supported by current browsers.