Archive for March, 2007

Merging TurboGears and Pylons?

Recently Bruce Eckel wrote up some thoughts on PyCon, which included this little tidbit:

It seems likely that TurboGears and Pylons will merge. This looks like a good thing.

Somebody asked about this on the Pylons mailing list, which got this response:

It’s conceivable, it was definitely discussed a few times as well. It wouldn’t be so much a merger in any sense, as more of a coalescing of common parts.

–Ben Bangert (On the Pylons mailing list)

So, yes we did spend quite a bit of time talking about this at PyCon. And yes the word merger was used, but if you’re looking for some kind of big bang switchover, I think you’ll be disappointed.

From my perspective, the philosophical approach behind all of our discussions has been “The more we can share parts the better.”

But we all have taken it one step further — were we have different ideas about how things should be done, we need to weigh the relative merits of maintaining those differences against what those differences cost us. In particular I’m thinking about the cost in terms of mantaining:

  • separate libraries
  • separate documentation efforts
  • separate mailing lists
  • separate bug tracking systems
  • decreased visibility in the wider web marketplace
  • and ultimately separate user communities.

    It’s not entirely clear to any of us how far this philosophy will take us if we follow it — the devil is always in the details. But if we are committed to working together as closely as possible it may not matter if we “merge” what matters is that we both get to use great components, and we get the benefits of shared effort.

    To some extent, we’ve already begun the process by deciding to build our frameworks on the best components we could find, and to keep those libraries as loosely coupled as we can. To quote Ben again:

    That is actually already happening with TurboGears spinning projects out (widgets) and them becoming usable in a broader sense.

    Surprisingly enough, this is also something we have in common with the Zope guys, who have created a lot of great stuff that none of us got to use because it was too tightly integrated with the Zope core. They have been spinning out components pretty regularly for the last couple of years, and we want to work together with them more.

    Obviously, we won’t merge with Zope, but I hope that we can work with them in lots of interesting ways to move the state of Python web development forward. I for one would like to have access to their Transaction manager for multi-database transactions, and I worked a bit with Zope guys last week on integrating Tosca Widgets into their Forms system.

    What I want is for there to be diversity where there are real differences, and unity where those differences don’t matter. We don’t want to limit either framework, but we don’t want to have pointless duplication of effort either.

    My personal hope is that we take this ride as far as it can reasonably go, and see how close together we can get, with the understanding that we may end up as two very similar frameworks that share lots of things, but maintain some important differences.

    Or, if we’re smart enough, creative enough, and and flexible enough, we may end up as one framework. To quote a line from Terminator 2 “The future is not yet set. The future is what we make it.