On 6/5/07, James Gardner <[EMAIL PROTECTED]> wrote:
> > do it without the cruft of Java, the chaos of PHP,

"chaos of PHP", that's a good description.

> > 1.b. A second generation modern web frameworks, building on ideas from
> > Rails, Django, etc, and learning from their flaws
> > 2. Designed for customization; modular, configurable at any level
> > 3. Leverages the experience and power of more specialized libraries:
> > Paste for low-level WSGI/HTTP, Mason->Myghty->Mako, SQLAlchemy
> > 4. Good tools for testing and debugging
> >
> I like the idea of calling it a "second generation framework" in
> particular but all your points are valid.

Rails/Django are clearly second generation compared to the frameworks
before them, so if you want to argue Pylons is more advanced than
that, you'd have to call it third.

Pylons is also more advanded in its Routes-based dispatching
mechanism.  There are several ways to count generations in Python web
frameworks.  Zope was the first framework.  Webware/Quixote/CherryPy
appeared as reactions against Zope.  If you consider Zope a special
case because it's more of a whole environment than a framework, that
makes Webware/Quixote/CherryPy generation 1.

Generation 2 was the "megaframeworks": TG and Django which bundled a
Javascript library, templating system, ORM, authenticator, form
builder, etc.  Previously the user had to integrate those himself, and
if he didn't have the expertise he did a shoddy job or avoided it.
(Quixote does have a small template system and form builder, but
they're much less ambitions than Buffet and ToscaWidgets.)  In some
sense that means they're adding features that Zope had all along, but
in a more modular way.  The megaframworks coincided with the rise of
WSGI and the desire to compete with Rails.

Pylons takes the modularity a step further with its Routes-based
dispatching, and by being "Paste"-ed up from the core.  So that makes
it third generation.

(Inside generation 1 there was also a distinction between
servlet-style dispatching (the controller action is in a Python module
in the URL filesystem, a la Webware/Java/PHP/PSP), and programmatic
dispatching (Quixote's attribute/subattribute, CherryPy's
package/subpackage).  For a couple years the two lived side by side,
then programmatic took over completely when TurboGears adopted
CherryPy's dispatching.  So this could be considered another
generation level.)

But also remember that CherryPy 3 has Routes dispatcing as an option,
and sooner or later that will appear in TurboGears.  So saying Pylons
is more advanced because it has Routes will probably sound lame by the
time Pylons 1.0 comes out.

-- 
Mike Orr <[EMAIL PROTECTED]>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to