We are frequently asked to recommend an HTML5 framework for building single-page web applications in the Enterprise. Sometimes answering that question well requires a deep understanding of the problem that the person is trying to solve and sometimes there are a handful of perfectly good choices but usually there aren’t. Nearly every time we recommend Angular.
Here is why:
Google Trends: Angular vs Ember vs Backbone vs Sencha
With a solid foundation of support from Google and a steadily growing community, Angular has what it needs as an open source project to be successful for quite some time. Beyond the strong foundation and community what is it about Angular that we like so much?
- Plays nicely with other libraries
- Componentization and code reuse
Caveat emptor - we have not done much with Ember in anger as of yet - Alex Matchneer (@machty) of the Ember.js Core Team and author of Emblem.js put together this deck that does a great job of highlighting the differences in approach:
Angular.js from the perspective of Ember.js
From the deck:
"[Ember is] a framework for creating ambitious web applications" - Ember.js Homepage
"AngularJS is a toolset for building the framework most suited to your application development." - AngularJS Homepage
This is a key point. Angular is targeted at helping you build a framework that you then use to build applications whereas Ember is more prescriptive, with lots of conventions, different classes, inheritance, and non-pojo data models. In an Enterprise setting, the Angular approach is very in line with how we generally think about things.
Does this mean Ember is a bad choice? No, not quite. Ember looks like a great framework with a solid approach and a growing community - we are interested in keeping an eye on it over time. It is possible that it is ideally suited to your needs - it is not yet clear that it will be able to thrive in the Enterprise.