Backbone
Overview:
Backbone is lightweight, flexible and offers a minimalist solution to separating concerns in an application. It is not super opinionated and does not lock a developer into the Backbone way of doing things. Out of the box, the framework supports a persistence layer, RESTful sync, models, views, collections, event-driven communication, templating and routing. Developers are not locked into these constructs and have the ability to provide their own implementations.
Highlights:
- Follows Model-View*
- Minimal size with about 800 lines of code
- RESTful models
- Simple views (Must provide view-rendering mechanism)
- No impact on server architecture
- No impact on file organization
- Does not need to own the entire page
- Choose your own template engine (String-based handlebars.js is most common).
- Routing (optional)
Pros:
- Backbone is incredibly simple, it only has four major components: Collections, Models, Views and a Router.
- Allows developers the ability to easily override parts of the framework to suit custom needs.
- Can leverage extension community to address common problems (i.e., Marionette, Chaplin )
Cons:
- Backbone's documentation lacks real world examples. Documentation is not detailed enough.
- Backbone does not ship with baked-in solutions to common problems ( i.e., Form validation, sub-views and view rendering, etc. )
- Must Developers must either provide custom solutions to common problems or adopt a solution from the extension community.
- While simple at the start, Backbone applications can become very complex and difficult.
AngularJS
TBA