Need advice about which tool to choose?Ask the StackShare community!
Backbone.js vs Durandal vs Ember.js: What are the differences?
View Layer: Backbone.js focuses more on providing structure to web applications by providing models, views, and collections while Durandal emphasizes on composing views and view models to create dynamic user interfaces. Ember.js, on the other hand, comes with a more opinionated approach to the view layer by using Handlebars templates and components.
Data Binding: Backbone.js requires manual synchronization between data and the view, while Durandal implements a two-way data binding using Knockout.js. Ember.js uses automatic data binding with its computed properties and observers.
Routing: Backbone.js relies on its Backbone.Router for routing purposes, while Durandal has a built-in router that supports hash-based and push-state routing. Ember.js provides a sophisticated routing system that allows nested routes and dynamic segments.
Development Philosophy: Backbone.js is minimalistic and flexible, requiring developers to make decisions on structure and architecture. Durandal embraces convention over configuration, providing a more guided approach. Ember.js follows the principle of "convention over configuration" coupled with strong opinions about the best way to build web applications.
Community Support and Ecosystem: Backbone.js has a large community and a variety of plugins available, but it lacks a standardized way of building applications. Durandal has a smaller community compared to Backbone.js but offers a more coherent ecosystem. Ember.js has a robust community and a wide range of add-ons, providing a rich ecosystem for developers.
Learning Curve: Backbone.js has a lower learning curve compared to Durandal and Ember.js, which have steeper learning curves due to their opinionated nature and advanced features.
In Summary, the key differences among Backbone.js, Durandal, and Ember.js lie in their approach to the view layer, data binding, routing, development philosophy, community support, ecosystem, and learning curve.
Pros of Backbone.js
- Javascript structure135
- Models101
- Simple98
- Restful76
- Easy api59
- Flexible46
- Open source45
- Fast to pick up44
- Events34
- JSON25
- OOP8
- Lightweight2
- Collections1
- Easy customizable1
Pros of Durandal
- UI components3
- Easy to learn3
- Javascript2
- Free2
- Works IE8 >2
- Customizable2
- Quick to develop2
- Easy to start2
- Open source2
Pros of Ember.js
- Elegant126
- Quick to develop97
- Great mvc83
- Great community82
- Great router73
- Values conventions, there is one-true way to organize52
- Open source50
- Components44
- Mvc framework34
- Handlebars.js28
- Htmlbars13
- Yehuda katz11
- Tom dale10
- Great logo10
- It's NOT Google or Facebook6
- manages large data sets on the front end easily5
- Convention over Configuration5
- Glimmer: react-like rendering engine5
- Organized4
- Fast4
- Enterprise4
- Intelligent4
- It rocks4
- Good docs3
- Fastest spinning circles3
- IE8 support3
- Easy and Quick to develop2
- Documentation is finally active and updated2
- Flexibility1
- Business wins1
- Comprehensive1
- Great for big apps/many devs because its organized1
- Growing community1
- For building ambitious Web apps1
- Dependency Injection1
- Stability without stagnation1
Sign up to add or upvote prosMake informed product decisions
Cons of Backbone.js
- Requires underscore.js1
Cons of Durandal
Cons of Ember.js
- Very little flexibility2
- Too much convention, too little configuration2
- Hard to integrate with Non Ruby apps1
- Hard to use if your API isn't RESTful1