Ooh, shiny

Ember.js 1.13.0 out now

Natali Vlatko
Glitter image via Shutterstock

Ember.js gears up for its latest release and also throws out the beta for version 2.0. We can officially welcome the sparkling new Glimmer rendering engine, which will ease in the transition to 2.0 in the coming weeks.

43 contributors and over 680 commits have produced the new Ember.js 1.13.0, which includes a number of deprecations that will ease the upgrade to Ember.js 2.0. Matthew Beale and co-creator Yehuda Katz made the announcement recently, and also introduced the 2.0 beta as the first release in the 2.x series.

Glimmer of change

The big news for 1.13 is the Glimmer rendering engine, in that it significantly improves re-render performance and is the result of Ember’s third overhaul of their rendering layer. This is the start of the 2.0 prep, with Glimmer playing a big part in the 2.x series development model.

Previously, Beale and Katz note that Glimmer relied on “granular observation for efficiency”, and the engine’s new value-diffing strategy has addressed issues such as representing changes in terms of granular observers and Ember’s general inefficiency when objects and arrays were replaced.

This hybrid model now uses a virtual tree of the dynamic areas of the DOM. “This means that even if the original data structure (for example, an array) is completely replaced, the DOM is not updated unless the resulting rendered content has changed”.

Glimmer’s hybrid model can opportunistically take advantage of explicit mutation (via set) when it is used, while also supporting efficient re-renders of entire data structures, updating only the DOM nodes that need to be changed.

Beale and Katz also gave a shoutout to the React team for the inspiration behind Glimmer’s overhaul, whose precise Virtual DOM approach was “influential” to the Glimmer changes.

Further updates

On top of the Glimmer news, some new component lifecycle hooks have been introduced in Ember 1.13. There’s also a new helper API with a set of features informed by “real-world experience”. Ember helpers represent a single value, do not manage DOM or control flow and can recompute themselves. They’re also able to optionally access services and do not require a dash.

Notable deprecations in 1.13 include all view APIs:

  • Ember.CoreView, Ember.View, Ember.CollectionView, Ember.ContainerView
  • {{view 'some-helper'}}
  • The {{view}} keyword for accessing properties on a view
  • Ember.Select and {{view "select"}}
  • Ember.LinkView in favor of Ember.LinkComponent

In the upcoming 2.0 release, a number of breaking changes are also expected, including the removal of a number of public APIs. For a clear migration path and for further information, users are urged to check out the Deprecation Guide, which will help on the road to 2.0.

The Ember.js Changelog can be viewed in its entirety here. The Glimmer rendering engine was first unveiled at EmberConf 2015.

Natali Vlatko
An Australian who calls Berlin home, via a two year love affair with Singapore. Natali was an Editorial Assistant for (S&S Media Group).

Inline Feedbacks
View all comments