4 ms·
While there's great feedback here, it's interspersed with information that is either outdated or just flat-out inaccurate. Overall, Angular is a much more exte
by tomdale 14y ago
While there's great feedback here, it's interspersed with information that is either outdated or just flat-out inaccurate.
Overall, Angular is a much more extensive framework than Ember.
I don't think this is true. For example, AngularJS, as far as I'm aware, does not offer a persistence story at all.
Injection and testability.
Ember.js does dependency injection too; we just roll it into our conventions so that new developers don't need to learn what dependency injection is. If you have to learn a ton of comp sci terminology to start learning a framework, they blew it.
Additionally, Ember is fully unit tested (over 6000 unit tests at the moment) and, because of dependency injection, loading up your app in a clean state and testing individual components (models, views and controllers) is easy.
Support for partials and inclusion of templates. This is another thing I really missed with Ember.js, which offers no easy way to break down your HTML templates into smaller, more manageable files.
This is just flat-out inaccurate, and has never been true. Ember has supported breaking up templates since day one.
Documentation. While the Ember.js documentation is fairly large, I found it very unorganized and I often resorted to searching the page to find what I need.
This has been fixed and the response has been overwhelmingly positive. We still have a ton of stuff planned to make it even more friendly for beginners.
Cascading updates are being executed right away.
This is simply not true. In fact, Ember's run loop is what powers many of the nicest features, like deferred DOM updating and binding synchronization. I'm a little bit surprised that other JS frameworks haven't copied the idea, to be honest.
You need to remember to call the setter: object.set('foo', newValue)
I agree that this is not ideal, but the flip side is that frameworks like Angular have to iterate over every bound object when something in a scope has changed, and check it against previously known values to determine if a change has happened. This "dirty checking" can quickly lead to pathological performance issues. We're all about ease-of-use, but not when it turns into a footgun.
As you might be aware, Yehuda Katz is on TC39 (the committee developing the next version of ECMAScript). ES6 supports object proxies, which provide sufficiently rich semantics that we will be able to drop the get/set requirement if you are targeting ES6 browsers. We are ready to add this to Ember as soon as proxies land in popular browsers.
It's actually disappointing how much FUD is in this article. Competition is great, but let's deal with facts.
- hakaaaaak 14y ago> Ember.js does dependency injection too; we just roll it into our conventions so that new developers don't need to learn what dependency injection is. If you have to learn a ton of comp sci terminology to start learning a framework, they blew it. I've been using Angular for months now and although I already knew what dependency injection was, I didn't have to understand the term to use Angular. > Additionally, Ember is fully unit tested. Not to start a flame war, but I'm not sure this is a plus. Full unit coverage is nice for confidence, but can be balls and chains when it comes time to make changes. Just as an example, Rails is not fully unit tested by any stretch of the imagination.
- tomdale 14y agoNot to start a flame war, but I'm not sure this is a plus. Full unit coverage is nice for confidence, but can be balls and chains when it comes time to make changes. Ask any of our pre-1.0 users; they'll assure you that the pace of change was breakneck and certainly not hindered by our unit tests.
- psycr 14y agoI can confirm this. Oh boy, can I ever confirm this. Tom, do you know if anyone has written extensively about tests in Ember? Or is the source still the best go-to?
- logical42 14y agoI will vouch for this as well. I have still, very conflicted feelings about the improvements in the router and having to rewrite large portions of the app I was (and am still) working on. @tomdale thank you for the breakneck speed in development, it amazes me how much the project has evolved in the time I've been using it.
- taligent 14y ago> Just as an example, Rails is not fully unit tested by any stretch of the imagination And boy does it show.
- 14y ago