MVC frameworks are great for when you have an application that will eventually grow to be a full featured application. It make adding modules and functionality super easy and organized. If you make a change to one area theoretically it won't break other areas. It keeps things nice and separated -- mostly your data and your actual views.
Traditionally the concept of MVC is applied mostly to backend development but recently it has been moving more over to the front-end. What does that mean? Before you would simply use backend solutions like PHP or Ruby to create an MVC type application and you would have the following setup:
- Model: Database
- Controller: Action pages on the server
I've mostly stuck with BackboneJS only because it is the barest of them all. It comes with very little assistance and most of what you need extra you have to code it in yourself. I don't like it when I make an application and am told how to format my code or how to use it in order for it to fit the framework. BackboneJS let's you do what you want -- for the most part.
So far what I've done is use MarionetteJS (fills in the gaps that BackBoneJS has) and built MVC format applications:
- Model: Async calls to the server/database (RESTful)
- View: Underscore / Handlebars Templates