Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Ember.js 2.0 Celebrated for Backwards Compatibility

Ember.js 2.0 Celebrated for Backwards Compatibility

This item in japanese

Ember 2.0 has been released -- with zero new features.

In the blog post Ember.JS 2.0 Released Yehuda Katz and Matthew Beale highlight "Major releases of most libraries try to do two things. They introduce new APIs, and remove deprecated ones. Our release focuses on doing one thing well: Instead of introducing new features, the goal of Ember 2.0 is to remove accumulated cruft."

The decision has been met warmly by the JavaScript community, who have widely praised the framework for remaining backwards compatible with 1.13.

Katz and Beale explain that Ember 2.0 only removes the features that were deprecated in Ember 1.13, meaning that apps that run on Ember 1.13 without deprecation warnings should also run on Ember 2.0.

They continue

Since Ember 1.0, adherence to semantic versioning has helped us grow an amazing community. Ember powers extremely ambitious applications, and most of those applications have been able to move forward over 13+ releases as new features arrived.

We are committed to giving every Ember codebase a path into 2.x. To ensure this, we've flagged everything removed in 2.0 with a deprecation in the 1.x series. If your app runs on Ember 1.13 without raising deprecations, it should run on 2.0. There are no new features to adapt to or adopt.

While Ember 2.0 might not come with any new features, it drops several APIs including Views, Controllers, ReduceComputed and ArrayComputed.

Views and Controllers are both supported by the ember-legacy-views and ember-legacy-controllers compatibility addons respectively, that will be maintained until at least Ember 2.6. ReduceComputed and ArrayComputed have both been made obsolete by the Glimmer rendering engine, introduced in Ember 1.13, which makes their function redundant.

On Hacker News, in the discussion Ember.js 2.0 Released, many were quick to commend the Ember team. User nercury commented

If your app runs on Ember 1.13 without raising deprecations, it should run on 2.0.

Every framework should take note: that's how you avoid creating another framework and fragmenting community! It's is great to see this in action. Amazing work.

Not everyone in the JavaScript community was pleased with Ember's path to 2.0. Tom Marsh commented "Have you seen the changes between 1.8 and 1.13? It might as well be a new framework. So far moving from 1.8 to 1.8 on CLI has taken my team 3 months, and we still need to migrate to 1.13 if we are to remain supported."

Ember co-creator Tom Dale replied "I'm really sorry it's felt like a slog for your team. We've learned a lot from the transition from 1.x -> 2.0, and definitely didn't get everything right. That said, we think we can refine the 2.x -> 3.0 transition to make it much smoother based on what we've learned."

On Reddit, in the related discussion Ember.js 2.0 Released user awj defended the framework, saying

Ember moves fast. The entire JavaScript world moves fast. Maybe it's "too fast" for a lot of people's level of involvement/commitment due to their project needs.


But Ember, unlike the vast majority of projects I've worked with, puts a lot of effort into not breaking things. Yeah it's moving fast, yeah there are new concepts coming at you from all angles, but it's not like you upgrade from 1.12 to 1.13 and everything just breaks inexplicably.

Katz and Beale also addressed some of the issues developers may have experienced

In the lead-up to breaking changes in Ember 2.0, we made a number of mistakes that caused our users to experience a great deal of churn.


The feeling of "churn" is contrary to all our release process goals. In addition to the continued maintenance of a six-week release cycle, we have a number of tweaks to the process planned for 2.x. These are intended to help us avoid a similar problem late in the 2.x cycle.

Among these "tweaks" are LTS (Long-Term Support) Releases, more informative deprecations and improved deprecation tooling.

Ember.js is released via an MIT licence. InfoQ readers can contribute to Ember.js via its GitHub project. Full info on the Ember 2.0 release can be found in the changelog.

Rate this Article