

JavaScript: Help me select MVC (or MV*) Framework? - kirtijthorat

JavaScript MVC Frameworks are a big topic nowadays. Over the last several weeks I have been in a constant search for the perfect JavaScript MVC (or more appropriate MV<i>) framework. I am about to start a web application with Node.js on the backend. But, selecting an appropriate MV</i> framework for structuring and organizing our JavaScript web app is a nightmare. I can&#x27;t zeroed in on one as there are too many choices like Backbone, Ember, AngularJS, KnockoutJS, YUI, Dojo, etc. I have read debate on StackOverflow and Quora where Developers are in split (or spoiled by choices). It&#x27;s seems very hard choice to pick a favorite and stick with it.<p>The only JavaScript &quot;framework&quot; (whoever said it? May be they mean to say &quot;non-MVC&quot; framework) or more appropriately &quot;toolkit&quot; (as it doesn&#x27;t impose any particular structure on the application) that I have used so far is &quot;jQuery&quot; for DOM manipulation. I would like to use the MVC framework that will extend my existing knowledge which deviates from classic Javascript UI development and can use any of jQuery’s powerful features which we all know and love.<p>How do you decide on which MVC to use in a ocean of so many options? Please share your thoughts.
======
aliirz
When I was in your position I took a leap of faith and went for Backbone.JS, I
am not sorry for that decision as it has worked wonders for me. However I
would like you think the following before choosing your arsenal(MV*
framework):

1\. It should be easy to understand. 2\. It should have good community
support(because you will run into errors and problems).

A lot of these frameworks have become very mature with the time and community
effort so you will never be alone and stuck at a place with no clue. Start
with a framework whose workflow is easy for you to understand, remember the
goal here is to organize your javascript code into manageable bits. Pick one
from [http://yeoman.io/community-generators.html](http://yeoman.io/community-
generators.html) it will help you quickly get started.

------
thenerdfiles
JS "Frameworks"

AngularJS has a steep learning curve because of its "Angular Way" (which
doesn't get W3C Standards right, like templating). In the large-scale context,
AngularJS, very much unlike Backbone.js, really adds another layer of
complexity (steep learning curve included).

Backbone.js is actually a minimalistic (meta-)library: simple, elegant,
additive, and is where JS programmers can excel and great for large-scale.

AngularJS I think is great for small-to-medium scale and prototypes. Purist JS
devs think frameworks should never go to production, and certainly not for
large-scale. Some links:

Great click-through on large-scale JS:
[https://speakerdeck.com/coodoo/backbone-rocks-large-scale-
si...](https://speakerdeck.com/coodoo/backbone-rocks-large-scale-single-page-
app-done-right)

High level AngularJS from the ground up: [http://alicial.github.io/leveling-
up-angular-talk/#/](http://alicial.github.io/leveling-up-angular-talk/#/),
[http://alicial.github.io/leveling-up-angular-
talk/examples/d...](http://alicial.github.io/leveling-up-angular-
talk/examples/directive.html)

Really good code samples and comparisons between Angular, Backbone, and Ember:
[http://prezi.com/sxv2t_nambyd/client-side-mvc-
backbonemarion...](http://prezi.com/sxv2t_nambyd/client-side-mvc-
backbonemarionette-ember-angular/)

JS Languages

TypeScript really adds value to non-front-end developers who are interested in
JS as a replacement language and still want static typing and interfaces.
Though many other "compile-to-JS" implementations have static typing,
TypeScript has the backing of Microsoft — so, IntelliSense is baked in.

CoffeeScript is more elegant, Pythonic, and is influencing ECMAScript 6's
syntax. It's important to note that the Leaders of the modern JS movement
actually believe that dynamic typing is one of JavaScript's best features;
CoffeeScript embraces this opinion, and tries to enhance the language around
it. Some links:

[http://prezi.com/zkhsz49ownaw/coffeescript-vs-
typescript/](http://prezi.com/zkhsz49ownaw/coffeescript-vs-typescript/)

[https://github.com/jashkenas/coffee-script/wiki/List-of-
lang...](https://github.com/jashkenas/coffee-script/wiki/List-of-languages-
that-compile-to-JS)

