Backbone is a tiny library that brings back a degree of clarity and control. It's inspired by the MVC approach of separating the Model (the data that the client reads from and writes to the server), the View (the DOM, and all the snippets of HTML that create each part of the user interface) and the Controller (the collection of code that orchestrates the behaviour of the app).
Backbone makes it a breeze to have the user interface listen for changes to the data, and update accordingly. In a similar way, changes to the local data can be automatically sent back and synchronised with the server API.
It's built on top of the brilliant Underscore.js, a handy swiss army-knife for manipulating arrays, objects and functions, and also takes advantage of jQuery or Zepto (a light, jQuery-like library for WebKit-mobile), if one of them is present.
Altogether, it's a joy to use. Backbone avoids the constraints and burden of more heavyweight frameworks, and uses its expressiveness and lightness to put the fun back into app development.