Aurelia.js
Land Of JS Libraries
https://docs.google.com/spreadsheets/d/1B55Pt0dnENOtA0crNFxM0HkrdV_1KGaOTyu_CqQhJUE/edit?usp=sharing

Aurelia Project
- Rob Eisenberg
- Built Durandal
- Worked on Angular January-November 2014
- Started Aurelia because he disagreed with the direction of Angular 2 (http://eisenbergeffect.bluespire.com/leaving-angular/)
- No Corporate/Financial support
- Work Began in December 2014
- Current Version: 0.13.2
- Github usage statistics

But . . . why?
- An MVC Framework . . . with conventions
- Very simple & explicit one/two way bindings
- Core features (Dependency Injection, ) are modular
- Not a opinionated (the Angular way)
- gets out of the way
- Contributors all have day jobs as app builders -- no one is an explicit 'framework builder'
- Rob Eisenberg references Angular's need for tooling in podcast (http://herdingcode.com/herding-code-203-rob-eisenberg-on-aurelia/)
- Comparison: http://blog.durandal.io/2015/03/16/aurelia-and-angular-2-code-side-by-side/
Features
(many of these are merely modular recommendations)
- Supports Evergreen Browsers (+IE9 if you add a polyfill for mutation observers)
- JSPM
- Systemjs
- HTML Imports for Templating
- ES7
- Yes, ES7 (via babel -- https://kangax.github.io/compat-table/es7/)
JSPM
- Bullet One
- Bullet Two
- Bullet Three
SystemJS
- Bullet One
- Bullet Two
- Bullet Three
HTML Imports
- Bullet One
- Bullet Two
- Bullet Three
Usage Points
- aurelia-app attribute
- view(html) & view-model(js: behavoir/data) pairs (conventions!)
- view-model: (emphasizes that these are suggestions)
- classes! default methods:
- constructor
- activate, canActivate, canDeactivate, deactivate
- imports
- injection, bindable decorators!
- classes! default methods:
- string interpolation, attribute binding, event binding (delegation, Object.observe/getters + setters)
- configRouter (route, name, moduleID, title, nav)
- repeat.for, if.bind, attributes,
- require
Aurelia.js
By qwertyisms
Aurelia.js
- 1,204