JavaScript: Help me select MVC (or MV*) Framework?
2 comments
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 it will help you quickly get started.
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 it will help you quickly get started.
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...
High level AngularJS from the ground up: http://alicial.github.io/leveling-up-angular-talk/#/, http://alicial.github.io/leveling-up-angular-talk/examples/d...
Really good code samples and comparisons between Angular, Backbone, and Ember: http://prezi.com/sxv2t_nambyd/client-side-mvc-backbonemarion...
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/
https://github.com/jashkenas/coffee-script/wiki/List-of-lang...
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...
High level AngularJS from the ground up: http://alicial.github.io/leveling-up-angular-talk/#/, http://alicial.github.io/leveling-up-angular-talk/examples/d...
Really good code samples and comparisons between Angular, Backbone, and Ember: http://prezi.com/sxv2t_nambyd/client-side-mvc-backbonemarion...
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/
https://github.com/jashkenas/coffee-script/wiki/List-of-lang...
The only JavaScript "framework" (whoever said it? May be they mean to say "non-MVC" framework) or more appropriately "toolkit" (as it doesn't impose any particular structure on the application) that I have used so far is "jQuery" 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.
How do you decide on which MVC to use in a ocean of so many options? Please share your thoughts.