BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Ember 3.0 and beyond, with Co-Creator Tom Dale

Ember 3.0 and beyond, with Co-Creator Tom Dale

Tom Dale, co-creator of Ember and senior staff software engineer at LinkedIn, recently talked with InfoQ about the recent Ember 3.0 release, the direction of the Ember project, alignment with modern web standards, and Ember’s initial experiments with Rust and Web Assembly.

The Ember 3.0 release has no specifically new features, but instead removes deprecated features. Dale explains that:

We landed a lot of great things in 2.x. Compared to many other projects, we wanted to get the goodies into the 2.x series rather than forcing users to upgrade to get new things.

The Ember team takes pride in being able to deliver massive improvements without significant (breaking) changes. The Glimmer rendering engine, for example, landed in Ember 2.10, without breaking the existing approach to building components with Ember.

When asked what significant changes are coming in forthcoming 3.x releases, Dale explains that

No major fundamental changes are needed to Ember as a whole. We have a clear vision in place, with a nice separation between Ember, Ember Data, and Ember CLI. With Ember 3.x we're focused on simplifying, making Ember clearer, and aligning with JavaScript community best practices.

Glimmer is a significant change in approach to the view layer for Ember users, and is similar in several ways to the unidirectional data binding approach popularized by React. Dale explains how this changes with Glimmer:

"Data down, actions up" describes the newer unidirectional data flow approach. "DDAU" is a rule you hear repeated in the Ember community, because it helps people avoid getting into a bind with 2-way bindings (pardon the pun!). Glimmer components bake that pattern right into the API itself.

For years the perception of Ember has been that all of its features must get used together, but Glimmer may be used stand-alone. The Ember project hopes to give Glimmer a path for users to opt-in or opt-out of other Ember features. Dale explains the perspective that led to this shift:

Front-end engineering has become a highly stateful distributed client, and things are collapsing under the pile of complexity. Many new developers are enthusiastic and need help to achieve their goals. A good analogy is bowling, with the bumpers up. Glimmer helps protect users from making mistakes interacting with the DOM.

Ember's component library is going to continue to grow. Glimmer components can be imported as web components with an application, although Dale cautions that:

Web components are not a replacement for the component system of Ember, React, and other frameworks. Web components are mostly useful for leaf components, but they are somewhat of a black box, it's not easy to share resources across components, and this limits the efficient rendering of web components.

Ember supports the use of Ember components as web components as part of a bigger mission of Ember to align with established standards. The Ember team participates in the Ecma TC39 process for driving the direction of the JavaScript language. Dale explains, for example, that

ES6 classes and decorators are important, they've had things like that in Ember forever, but now they can use the convention so people can use the framework without having to learn everything in the framework compared to standard language features.

Ember’s approach to standards is similar to trends in other frameworks such as Angular 2+, Dojo 2+, React, and Vue to align with language features wherever possible.

Beyond today's standards, the Ember team are also fans of TypeScript and the productivity gains it has provided their team. The Ember team respect that not everyone is a fan of TypeScript, and so have been careful to make sure the project's APIs are reasonable for pure JavaScript engineers.

The team authors parts of their framework including Glimmer with TypeScript, and have recently started to use it within Ember Core. Dale explains how he overcame his initial TypeScript skepticism:

We had a pretty small change to a data structure that was needed everywhere. I was gearing myself up for the pain to update it, expecting the change to take two weeks. With TypeScript and its refactoring tools, I just followed the thread of TS errors, and had the test suite passing after two days rather than two weeks!

Ember also serves TypeScript users by publishing npm packages authored in TypeScript that deliver TS definitions automatically to support Ember users who prefer to author their applications with TypeScript.

The interview concluded with a look at WebAssembly. There is currently a work in progress branch of the Glimmer VM that is authored in Rust and uses WebAssembly in the browser. Dale notes that

The Rust team has gone to significant efforts to work well with WebAssembly. WebAssembly is still reasonably limited, but the Ember team wants to make sure that we are ready for WebAssembly should it be the right path forward for portions of the Ember framework.

Thanks to Tom Dale for taking time to talk with InfoQ about Ember. To learn more about Ember, visit the Ember website.

Rate this Article

Adoption
Style

BT