It's really hard to answer this question when Backbone is lumped together with Angular and Ember. What Backbone offers is a light layer of structure over your code. Yes, it doesn't give you much, but I believe its sole purpose is to avoid the jQuery spaghetti that forms once you start writing more than 100-200 lines of JavaScript. Backbone doesn't give you many opinions, but I personally agree with you in that Backbone gives you a few opinions (not many), but not enough meat to justify those few opinions. It's basically a guideline as to how to structure different components of your app and how to communicate and share data between components. That being said, as far as I'm aware, you can more or less do anything you want to the DOM in Backbone Views. And Backbone certainly does offer some features: routing, an event system, and a data syncing system.<p>Backbone is probably several times less restrictive and controlling than something like, say, Ember or Angular. I've only used Angular, so let me comment on that. I think Angular definitely offers some powerful features that justify its structure. Two-way data binding, a system for reusable components (directives), a structure for organizing animations, a system for managing data from RESTful APIs, a full testing scaffold/system, etc. <i>It's not uncommon for jQuery and even Backbone apps that are rewritten in Angular to cut their codebase >2x.</i><p>I've heard that Ember is even more restrictive/opinionated than Angular, and perhaps it is more powerful as a result - I don't know. I've been satisfied with Angular.<p>That being said, there are tradeoffs for using frameworks. For example, you should only do DOM manipulation inside Angular directives. Honestly I think this is a positive, due to various powerful structural features of directives (reusability, modularity, customizability), but for some this can be a negative.<p>Moreover, because these frameworks are just contained in JavaScript files, you can selectively apply these frameworks, where necessary, to different parts of your web sites.<p>Ultimately, I think frameworks like Angular or Ember <i>are</i> as restrictive <i>and</i> as powerful as frameworks like Rails and Django. Backbone would be like Flask or Sinatra.