JavaScript Framework Evaluation

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* (see understanding MVVM by Addy Osmani)
  • 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 - could be interesting but co development with backend side and architecture)
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., MarionetteChaplin )
  • works fine with jQuery or without
  • can handle multiple pages in a single page.
  • lightweight
Cons:
  • Backbone's documentation on progress real world examples. see jQuery Mobile doc, backbone fundamentals book in progress)
  • Backbone does not ship with baked-in solutions to common problems ( i.e., Form validation, sub-views and view rendering, etc. ), but could be interesting in a mix approach springMVC / MVVM - couldn't really say for sure depending on springMVC side 's hability to trust and share Css3 and ECMAscript/JavaScript from what I see in France and not to see this as handicraft.
  • Developers must either provide custom solutions to common problems or adopt a solution from the extension community, but some are already doing this in the real life in spring / jsf development too - do not see any kind of provocation in this on my part.
  • While simple at the start, Backbone applications can become very complex and difficult.
Demos:


 



AngularJS

Overview:

// TBA

Highlights:

// TBA

Pros:

// TBA

Cons:

// TBA

Demos:

// TBA

 


 

Knockout

Overview:

// TBA

Highlights:

// TBA

Pros:

// TBA

Cons:

// TBA

Demos:

// TBA