Saturday 16 April 2016

Best Javascript MVC Frameworks

The frameworks discussed are the ones with the most traction at present:  AngularJS, Backbone, Ember, and Knockout.  Batman, CanJS, Meteor, and Spine are also mentioned but not covered in depth.

Each project is examined from several different perspectives including community, leadership, maturity, size, dependencies, interoperability, inspiration, philosophy, and features.

Specifically, the following four features are very important to me:


  • UI Bindings - I'm not just talking about templates, I'm talking about a declarative approach to automatically updating the view layer when the underlying model changes. Once you have used a framework (such as Flex) that supports UI bindings, you can never go back.
  • Composed Views - Like all software developers, I enjoy creating modular reusable code. For this reason, when programming UI, I would like to be able to compose views (preferably at the template layer). This should also entail the potential for a rich view component hierarchy. An example of this would be a reusable pagination widget.


  • Web Presentation Layer - We are programming for the web here people, the last thing I want are native-style widgets. There is also no reason for a web framework to create it's own layout manager. HTML and CSS are already the richest way to do style and layout in existence, and should be used as such. The framework should be centered around this concept.
  • Plays Nicely With Others - Let's face it, jQuery is pretty amazing. I don't want a framework which comes bundled with a sub-par jQuery clone, I want a framework which recommends using jQuery itself.


Most established

  1. Backbone.js
  2. AngularJS

Experiencing the most growth (in the last year)

  1. AngularJS
  2. Meteor
  3. Ember
  4. Knockout

Showing a small following but growing rapidly

  1. CanJS


Conclusion

We encourage you to take a look at the tests and data for yourself and draw your own conclusions. At the very least, it suggests that if initial load times are an important criteria in your consideration of tools, you may not be able to make use many of these tools today.

But we have reason to believe that will improve in the future. There are practical approaches we can already use today to reliably produce very fast rendering times, but they work best when HTML content is delivered from the server side rather than generating it solely on the client. That approach benefits many areas of user experience aside from performance alone, and we plan to write more about that in a followup post.

But in the meantime, it’s incredibly encouraging to see that the authors of frameworks like Ember are starting to acknowledge this issue. We can’t wait to see where the next few months take us.

Related Posts

Best Javascript MVC Frameworks
4/ 5
Oleh

Subscribe via email

Like the post above? Please subscribe to the latest posts directly via email.