title: Is Backbone.js really an MVC?
body: <p>backbone.js has been spoken of as an MVC framework for Javascript.  But is it?</p>
  
  <p>Here is the description of the model, from <a href="http://documentcloud.github.com/backbone/" rel="noreferrer">http://documentcloud.github.com/backbone/</a></p>
  
  <blockquote>
    <p><strong>Models</strong> are the heart of any JavaScript application, containing the interactive data as well as a large part of the logic surrounding it:
    conversions, validations, computed properties, and access control. You
    extend Backbone.Model with your domain-specific methods, and Model
    provides a basic set of functionality for managing changes.</p>
  </blockquote>
  
  <p>Now, that is not my understanding of the model in MVC at all.  In my understanding, the model is just the classes that model the domain, so your Student, School and Teacher objects.  The controller does performs the business logic on them and interacts with the view for display and receiving input.</p>
  
  <p>This understanding is consistent with the various definitions I find on the web, IE <a href="http://en.wikipedia.org/wiki/Model_view_controller" rel="noreferrer">http://en.wikipedia.org/wiki/Model_view_controller</a>:</p>
  
  <blockquote>
    <p><strong>Model–View–Controller (MVC)</strong> is a design pattern for computer user
    interfaces that divides an application into three areas of
    responsibility:</p>
    
    <p><em>the Model</em>: the domain objects or data structures that
    represent the application's state.</p>
  </blockquote>
  
  <p>So, my question is: is backbone.js really a MVC framework in any sense, or is it more of just a general way of helping you to glue everything together?</p>
  
  <p>Incidentally, the definition of the Model from backbone.js's FAQ appears to differ from the one I quoted above (also from backbone.js <a href="http://documentcloud.github.com/backbone/#FAQ-mvc" rel="noreferrer">http://documentcloud.github.com/backbone/#FAQ-mvc</a>:</p>
  
  <blockquote>
    <p><strong>Backbone.Model</strong> – Like a Rails model minus the class methods. Wraps a row of data in business logic.</p>
  </blockquote>
  
  <p>So in what sense is backbone.js really an MVC or not?</p>
  
  <p>(Caveat: I am just evaluating backbone.js currently.)</p>