Confusing JavaScript libraries

I am building my first mobile app with HTML5/Javascript/CSS. I am feeling overwhelmed by number of JavaScript libraries out there. In short time that I spent; I came across JsRender, nodeJS, backbonejs, knockoutjs, TypeScript, CoffeeScript, Jquery... Is there a generally accepted as a "Best Practice" document for building mobile apps? So that I don't have to read about each of these libraries and figure out what I should and shouldn't use.

I guess this might not qualify as a specific enough question, but I couldn't find better forum to ask.

First of all, the JS libraries that you mention have each a different purpose.

  • JsRender is for jQuery templating
  • nodeJS is a JavaScript server
  • Backbone is a JS library for applications client side built following the MVC pattern
  • Knockout is a JS library for applications client side built following the MVVM pattern
  • TypeScript and CoffeeScript are JS precompilers (allowing you to write code "easier", which compiles to JS)

I don't think there is any "best practice" here, since they all serve a different purpose. Learn their differences, pick one and go with it.

If you want to build a mobile app, I would suggest jQuery Mobile (but once again, that's a personal favorite). Others include Sencha Touch, Kendo UI Mobile, PhoneGap, ...