We're on the eve of a new age...and that new age comes in the form of a framework currently in Beta. The new age is Angular 2.
The new age, the rising dawn, the paradigm shift, the buildup of revolutionary thought has culminated around the thought that our applications should be componentized, or better yet that our applications should be constructed of independent but reusable components and that if I decide to switch out Component A for Component B, and they perform similiary functionality, that I can do so easily and without an arduous proccess of decoupling Component A from the rest of the application.
We already do this in Angular 1 with directives but only sort of/kind of. Directives are components done the Angular way but with some heavier baggage than one might expect. The afformentioned baggage being isolated scopes, outer-directive communiation, scope namespacing, and restrictive dependency injection.
It's a lot of carry around, especially when everybody is writing about how there's a new piece of luggage that takes care of all those things in a faster, more complient, more hamonious, more reusable/testable, and more compact way. The new baggage galloping into town, from the Peninsula, via Caltrain, into Soma, past the Ferry Building, and down Market St. is Angular 2.
For those that don't want to move on (yet), I provide you the quote from ng-book 2 that convinced me to leave Angular and take the plunge into Angular 2.
Therefore, it's all about getting serious...learning from the mistakes we didn't in fact know were mistakes in the past and learning the mistakes which will undoubtedly one day become the mistakes of the future.
And so we say goodbye, my deprecated friends, and good luck:
* controllers * automatic two-way binding * $scope * jqLite * Directive Definition Object (DDO) * declaring modules
Additionally, and the spirituality that is component-based programming, I've created a repo of links to angular2-components. It's just a list of people writing cool stuff the people behind those list items are the people that are innovating the Angular 2 open-source community.