Backbone.js is basically a collection of reusable functions that helps one implement the much acclaimed MVC (Model-View-Controller) Pattern for any application by decoupling the application logic from the Front end stuff. While Backbone.js does not provide a separate “Controller” out of the Model, View and Controller of the MVC Pattern, it does provide “Router” that can perform similar tasks as a Controller.
First off, to get the facts straight, one should not confuse jQuery and Backbone since there could be no Backbone without jQuery. Thats right, jQuery is our hero’s mother-ship. i.e. Backbone is fully dependent on jQuery. Then what makes Backbone different from jQuery? Well, it’s the ability of Backbone to structure the code using the proven and tested design patterns to make the code more maintainable and cleaner to look at, that differentiates Backbone from rest of them all. However, one should not mistake Backbone to be the only one providing these functionalities. Also, Backbone.js has a hard-dependency on underscore.js too and uses many of its utility functions. underscore.js can be thought of as a collection of reusable functions that enable smooth functioning of many commonly encountered tasks like HTML Templating.
However, having used Backbone.js, I have never felt the need to look beyond it for anything else.
Having said this, I end my informal introduction to Backbone.js
You can find more information about the intricates of Backbone from the official docs.