Ember.js 1.0 RC4 released
emberjs.com
emberjs.com
I'm using Angular, I love how little code I have to write to make testable apps with their two-way binding, and dependency injection. I went from 0 to Todo App in about an hour after I started to learn Angular. Should I give Ember a try?
With Angular, you can build a Todo App in no time, but building anything more complex requires you to understand e.g. Services, Directives, and Transclusion.
With Ember, you are just learning about Models, Views, & Controllers -- it doesn't get significantly more complex than that initial learning curve.
Ember has jQuery included, so using existing plugins is generally easy or at least possible. Beyond that, it has a far more powerful router (try doing deep routing with Angular. Angular UI's router may be changing this, but you would still have to include outside code to get the power of the standard Ember router) and in the future much more powerful REST support with Ember-Data (currently volatile, but still very powerful).
I started building a large application with Angular using FuelPHP for the REST server. Angular simply didn't have the power to do the things I needed it to at that time. Hopefully that's changing, since it seems to be the dominant framework these days.
If you want to build an app in an hour, I'd suggest knockout instead of either ember or angular.
We use it because we don't actually serve (much) HTML. We server up basically an empty DOM and the Ember app uses Handlebars templates to generate the entire webpage as it pulls data from our REST API.
Akamai hosts all our Ember code + handlebars templates + css + images, so the client only hits our servers for the REST API.
I've done some Angular with a simple internal tool, but it didn't see possible (or at least very easy) to take a similar approach so we stuck with Ember.
https://github.com/balanced/balanced-dashboard
It's live @ https://dash.balancedpayments.com/
We're currently moving over the old dashboard to the new one, so it's currently a WIP. Happy to field any questions on Github.
You can log in - the actual index is coming.
Ember.js is extremely future-proof. Yehuda Katz, who I work with on Ember.js, is on both the W3C and TC39, the committee designing the next version of JavaScript. Needless to say, we have a pretty good idea of what's planned for the future of the web platform; we're also very involved with the standards bodies to make sure it is as powerful as possible for building web applications.
Setters and getters are a trade-off. While we'd prefer not to require them, the alternative is that you have to diff objects every time a change happened. And not just a change, but a possible change—which means in response to almost any event. By using getters and setters, we avoid this particular performance footgun.
Actually, Ember views have much more in semantically common with Web Components than Angular directives, despite the fact that many people like to repeat this misinformation. For more, see this thread on Google Groups: https://groups.google.com/forum/#!msg/polymer-dev/4RSYaKmbtE...
About future-proof, I mean the Angular programming model is closer to what we'll be doing in a few years (There won't be any get/set or computed properties anymore); I never implied the Ember team is not aware of what's coming.
To me none of the frameworks are ideal, although I find Ember or Angular well architectured, as far as implementing the vision of the authors go. With the current capacities of Js and no compilation steps, compromises can not be avoided :-(
There is one more thing I'd really like to see before hitting 1. https://github.com/tildeio/router.js/pull/19 is probably the most important thing happening right now. 1.0 will not be there until these problems are addressed. I hope to see the PR make it to 1.0.
That being said, happy to see ember getting closer to 1.0 Final, it's a beautifully designed framework.
I would love to see more of the Ember community on Plunker!