What is the Best Model-View Javascript Framework to starting learning first?
Once you know HTML/CSS and the basics of Javascript, what’s next? Next would be to learn a Javascript library. jQuery is what I would recommend, because it is so heavily used everywhere. After that and you are ready to build serious web applications, then you should learn a Javascript model-view framework. With so many Javascript frameworks out there, which one to learn first? Some people call jQuery a library and other call it a framework. Regardless of whether it is a framework or not, it is not a “model-view” framework. Therefore, the answer to the question of “what is the best model-view javascript framework to learn”, would have to be something else. In my opinion, it would be AngularJS. Why?
1. You can start small and work your way up. With angularJS, there is a very low barrier to entry. The framework doesn’t have any dependencies. That means you can get something happening by just by adding an angularJS script tag to an HTML page and then add some ng directives. As a comparison, Backbone.js have a dependency on underscore.js. And then it needs something like jQuery or Zeptos (and you have to decide which to go with). And sometimes you even need to run nodeJS. So that is a lot of stuff if you are just starting out from HTML/CSS.
2. The HTML view is familiar. For one who is just starting to learn what is “model-view”, Angular makes things familiar because its “view” is the HTML.
3. AngularJS is maintained by Google, so it is well supported. Google has AngularJS in its CDN along with jQuery. I don’t see backbone.js, canjs, ember, and others there (at least at this time October 2013).
4. Significant community. You want a framework that has a significant community and is popular and is being used. While AngularJS community may not be as large as BackboneJS, it is consider significant and is larger than other frameworks.
For comparisons of various Javascript framework, see article on smashingmagazine and another article comparing Angular, backbone, canJS, and ember. Other articles explaining why they choose angular can be found here and here.
Of course, the choice of framework will depend on the development team and the specific project involved. There are pros and cons to each framework. But for first learning, I think AngularJS is a good place to start. After that, you will have enough familiarity with model-view frameworks that you can explorer other frameworks without being overwhelmed.