Ember is a framework that embraces convention over configuration. Even if you don't agree with every convention they have (I'm sure there are some things I wouldn't agree with) the convention means it will be easy for someone else to come in and understand what was going on.
I've read multiple places that every member of the Ember core team works on at least one production Ember site, keeping them in tune with how Ember is used, what developers need, what the pain points are, etc...
- Router
- Handlebars templates w/two way binding
- Components
- Data abstraction layer
ember generate route fizz
The above command creates all the boiler plate (including tests) leaving the developer to start coding.
Version 2.0 wasn't about new features. Instead features and deprecation warnings were added to the 1.X branch releases. When 2.0 was released all the deprecated code was removed. If you have an Ember 1.X app, upgrading should entail:
- Upgrade to 1.13 (the last 1.X release)
- Eliminate deprecation warnings
- Upgrade to 2.0
- Profit
Rather than introduce many breaking changes in 2.0 they provided a very sane upgrade path.
EmberJS core concepts - from their docs
Why I recommend EmberJS over AngularJS
I was actually understanding the code base for a project I had never looked at before.
For a project the size of Discourse, it typically takes a few hours to a few days to just begin to understand its code base. But Ember’s strong opinions and conventions allowed me to open a project I had never seen before and understand what was going on in only a few minutes.
Ember is highly opinionated, and given our rapidly growing team and blazing fast development cycle, Ember's conventions ground us.