Merits and Demerits of Different JavaScript MVC Framework

0
10

JavaScript MVC frameworks ensure high productivity with maintainable code. Different MVC frameworks are being adopted by developers to attain the right level of abstraction and features. A JavaScript MVC framework should support UI bindings. It should enable a developer to compose views. An ideal JavaScript MVC framework must be the one that recommends using jQuery. In this article, I am listing the JavaScript MVC frameworks along with their merits and demerits.

Backbone.js:

Backbone.js is one of the most favorites among all other frameworks. Anyone from the development background must have definitely heard about it and the number of brands which have used it.

Merit: Huge and impressive community as well as lots of momentum. Underscore.js is also another amazing framework to utilize.

Demerits: Doesn’t have robust abstractions and makes you feel like something is missing. Being lightweight, it results in lots of boilerplate. As the size of the application increases, this fact becomes clearer.

SproutCore1.x:

SproutCore was used by Apple on its iCloud project. As it is a well thought out framework, it is one of the largest one.

Merits: Bindings support, strong community, and a plethora of features.

Demerits: Immensely prescriptive. Tough to decouple from unrequited features, Coerces a native-like paradigm, and discourages using HTML for layout.

Sammy.js:

Sammy.js is a smaller framework and is quite simple. One of its main features is a routing system to swap out areas of an application with AJAX.

Merits: Has a simple learning curve and is easy to integrate with current server side applications.

Demerits: Overly simple and doesn’t meet the requirements when it comes to building larger apps.

Spine.js:

Inspired from Backbone, this framework possesses light weight and follows akin model.

Merits: Lightweight and has good documentation.

Demerits: Fundamentally inaccurate. “Is asynchronous UIs” is its core concept. This implies that UIs should ideally never block. Unless the backend has operational transformation, this feature is completely unrealistic.

Cappuccino:

This unique framework comes with its own language objective-J. Cappuccino attempts to emulate Cocoa in the browser.

Merits: Well planned framework with good community and inheritance model.

Demerits: Cappuccino is from an iOS developer and one can’t get past the idea of programming Objective-J in the browser.

Knockout.js:

This MVVM framework, Knockout, receives appreciation from its users. Stressing declarative UI bindings, it supports automatic UI refresh.

Merits: Binding Support with amazing documentation and great tutorial system.

Demerits: Odd binding syntax and doesn’t possess a solid view component hierarchy.

JavaScript MVC:

JavaScript MVC is an open-source rich Internet application framework which is based on jQuery and OpenAjax.

Merits: Strong community as well as a legacy.

Demerits: Odd inheritance model based on strings. Controllers are too close with views and lack bindings. Even its name sounds generic.

Google Web Toolkit:

GWT is a genuine client-side toolkit that comes with more than just a framework. It compiles Java to JavaScript while supporting a subset of the standard java library. It was used internally by Google for Wave.

Merits: Detailed framework with a strong community. It possesses sturdy Java-based component inheritance model. Works well for giant client-side apps.

Demerits: Java clearly gets removed from the list, with initiatives like DART being launched. The abstraction of Java on the client is a bit gawky.

Google Closure:

Google Closure is more than a toolkit and simply a JavaScript framework. It comes with a compiler as well as an optimizer.

Merits: Major Google apps have utilized Google Closure. It comes with modest component-based UI composition system.

Demerits: Lack of UI-binding support.

Ember.js:

Ember.js, previously known as SproutCore 2.0, is an endeavor to extract the core features from SproutCore 2.0 into a more compact modular framework appropriate for the web.

Merits: Truly rich templating system with composed views and UI bindings.

Demerits: Very new and lacks a lot in documentation.

Angular.js:

This good framework, created by, comes with interesting design choices.

Merits: Very well designed with aspects of template scoping and controller design. It possesses a dependency injection system. It also offers support to

rich UI-binding syntax to ease filtering and transforming values.

Demerits: Code base is a bit sprawling and views are also not very modular.

Batman.js:

Developed by Shopify, Batman.js is akin to Knockout and Angular. With a robust UI binding system, it is based on HTML attributes. It has been written in idiomatic coffeescript. Tightly integrated with Node.js, it also offers its own (not necessary) Node.js server.

Merits: Offers a clean code base and adopts a simple approach to binding, persistence, and routing.

Demerits: As it is based on Knockout, it has the same demerits as Knockout and Angular when it comes to nested components.

Simply put, Ember.js is the only framework that offers everything a developer is looking for. Even though it presents minor performance issues, it delivers a superb code base. With a strong community, this framework should be the one on your list.

Source

Leave a Reply