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 -~----------~----~----~----~------~----~------~--~---