The Transition to Ember 2.0 in Detail
emberjs.com
emberjs.com
Great work by all those involved.
In case anyone from the core team is looking through these comments, why did you guys change up Ember's initializer API? I mean even new addon projects freshly generated by ember-cli are now hit with a deprecation warning regarding initializers. Considering all the things affected by the initializer change, it makes it extremely challenging to ride canary when literally even canon boilerplate code by the tomster (to say nothing of the 1k addons out there) is deprecated.
It sucks that new Ember CLI apps trigger the deprecation. We should get that fixed :)
The TLDR is:
* We like templates, and were able to implement a more efficient algorithm using them (even more than the recent improvements in Babel).
* Compatibility is important to us, so HTMLBars was going to be a much better transition story for Ember 1.x than JSX.
* We prefer an HTML-centric templating story (copy/paste valid HTML and it works) over an XML strategy that requires camelCasing, className/htmlFor, etc.
* We optimized Glimmer for a hybrid (rerender + subscriptions to the model or service layer) model that can opportunistically avoid work based on knowledge we have from the whole stack.
That is an explicit non-goal of JSX, and it shows.
Also, for the most part, it's a drop in replacement for the old rendering.
As you know, React describes itself as the V in MVC; in contrast, Ember is a complete front-end stack, including not only a model and service layer, but also a built-in router, integrated command-line tools, and an add-on ecosystem that takes advantage of that common set of assumptions.
It's also safe to say that the React community is still exploring the space of the application layer: multiple flavors of the original Flux architecture, Facebook's recent announcement of a successor (Relay), and different routing libraries that work well with React.
We believe that there are productivity benefits to having the community coalesce around a single stack, but we also believe that it's important to avoid stagnation. That's why Ember 2.0 is both focused on bringing in some of the great ideas that React has pioneered in the view layer, but maintains many other aspects of the 1.0 stack.
We make the changes compatibly on the 1.x branch with a clear transition plan so that we can bring along as many existing users as possible.
For new apps, the "why Ember over React" exercise is left to the reader. They're both excellent at what they do.
I already got Atom-TypeScript working fine, but I am having issues with ember-cli-typescript not working, I was hoping for an official way of working with it.
I use my own build-chain with Gulp/LiveScript, but I found that some Plugin-Devs mentioned that supporting non-CLI-users was getting harder[0]
Now I have the fear that Ember will become a huge Rails like code generator blob in the future :\
[0] http://ef4.github.io/liquid-fire/#/installationI want to use LiveScript, Emblem and Stylus with the build modules of my choosing. Also I don't need any of these code generators. Broccoli feels also like they are running their own stuff just because they can.
export default Component.extend({
keyUp(event) {
if (event.which === 13) {
this.attrs['on-enter'](this.$().val());
}
}
});
This is invalid ES5. I assume this is new ES6 module syntax, specifically the `keyUp(event) {`?