James Gardner: Home > Blog > 2007 > Pylons and TurboGears 2.0

Pylons and TurboGears 2.0

Posted:2007-06-28 13:07
Tags:Pylons, Python, Web

If you are a Pylons or TurboGears developer you will almost certainly have noticed the excitement in both communities about TurboGears' announcement that version 2.0 will be built on Pylons. If this is news to you see Mark Ramm, and Jonathan LaCour's posts and the mailing list thread. It is great to see such positive comments about Pylons and brilliant to see the increased collaboration that is already taking place.

People are already talking about how this affects Django and Zope and the possibility of further collaboration with those communities but in this post I just want to describe the direction Pylons was taking before the announcement and the direction it is likely to take in the future just to put the announcement in context.

At the moment Pylons provides a stable, customizable core on top of which is integrated support for all the major Python templating languages and support for a choice of database object relational mappers, JavaScript libraries, form tools etc. This is fantastic for experienced developers because it enables them to pick and choose the best tools for the job and know that Pylons will not get in their way when they try to do something unusual. The downside is that the sheer choice of options for components beyond the core framework is often bewildering for new developers who are more interested in taking the recommended approach rather than researching what is best for their particular needs.

Ben Bangert and I have been discussing this recently and decided that what we needed was a "Pylons Power Pack" which would contain all of the community-recommended best tools of the moment. There would be full support for other Power Packs which would contain the alternative choices so that Pylons would still retain its emphasis on developer choice. As part of this restructure we planned to move all of the code which could be thought of as being related to a Power Pack out of Pylons itself and into the particular Power Pack which used it thus creating a more defined Pylons core. This division between Pylons core and the Pylons Power Packs would have another advantage: the high level tools in the Power Packs are still changing rapidly and there is still a lot of innovation taking place in automating the integration of Models, Views and Controllers. By keeping core Pylons separate from the high-level tools which use it, Pylons would remain flexible enough to be able to adapt.

This is where the TurboGears announcement is very interesting. In reality TurboGears and Pylons are already fairly similar because they have a similar high-level structure and both support the same high-level tools, indeed Pylons even borrows some of TurboGears APIs such as Buffet. Pylons' low-level middleware architecture is its key strength though and by basing TurboGears 2.0 on Pylons the TurboGears community get full access to the flexibility and modularity WSGI provides (including the Pylons interactive debugger) whilst still having access to the high-level tools both frameworks require.

From the Pylons point of view, TurboGears 2.0 can become what was planned for the "Pylons Power Pack", namely a powerful collection of all the best tools, nicely integrated together, well documented and ready for a beginner to get started with. This really is a win-win situation because the Pylons community gains its much-needed Power Pack and the TurboGears community gains full WSGI support. Add in the fact that now two sets of keen developers will be working to solve the same problems together rather than separately and the Pylons+TurboGears combination will be a force to be reckoned with.

Apart from helping as much as possible with the TurboGears effort I suspect Pylons will keep pretty much to its current course. Top priorities for us are:

There are one or two exciting Pylons announcements to come soon too but you'll have to wait a little longer to hear them!

(view source)

James Gardner: Home > Blog > 2007 > Pylons and TurboGears 2.0