What Makes a Framework "Next-Generation"?

The Model-View-Controller pattern (http://en.wikipedia.org/wiki/Model-view-controller) has proven itself to be a successful way of structuring a web framework. As applied to web projects, the pattern requires a separation between the representation of the data (the model), the way the data is presented in an HTML page to the user (the view), and the methods used to move data from component to component and map URLs to functional pieces (the controller). On large projects each of these layers may be performed by different individuals or different teams, and frameworks that enforce this separation can facilitate smooth development across varying skill sets. Rails is an MVC framework, as are all three of the frameworks discussed in this Short Cut.

Central to the adoption of Rails have been some previously overlooked "marketing" features:

  • Easy-to-follow screencasts and tutorials

  • Project creation scripts that set up running applications right away

  • Integrated zero-configuration development servers

These three features enable anyone with 20 minutes to jump into a framework and start producing results. A kind of arms race has emerged in this area, with various frameworks jostling to pack the greatest number of features into a "20 minute" wiki or blog application.

Rails includes the now-standard "full-stack" feature set:

  • An Object Relational Model (ORM): a code library which maps SQL database rows and tables onto objects and classes

  • Clean template language ...

Get Next-Generation Web Frameworks in Python now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.