[Twisted-Python] PB and other distributed object protocols

glyph at divmod.com glyph at divmod.com
Thu Jun 8 11:38:56 EDT 2006

On Thu, 08 Jun 2006 09:30:17 -0400, Stephen Waterbury <golux at comcast.net> wrote:
>Thomas Vander Stichele wrote:

>>At the risk of being too obvious, we've been using PB as shipped with
>>Twisted since 1.3.0, and it's worked very well for us.  Are you saying
>>there's specific stuff you need from newpb that's not in the current
>>implementation ?

>Yes:  forward compatibility.  ;)   I've written PB code, too, and that
>code doesn't work with newpb.  Not that I would expect it to, given the
>fairly substantial changes Brian made in developing newpb, nor do I
>think it would be good to have that as a constraint on newpb.

I think I actually disagree.  If it's going to be called "PB", it should be compatible, in some way, with the existing "PB" infrastructure.  Maybe not if you wrote insanely complex custom side-effecty custom jelliers, but at least you should be able to port fairly easily.

While wire-level compatibility might be desirable, I think that application-level compatibility should actually become a requirement.  As you note, Steve, the only thing that the promise of a PB2 that will be totally incompatible with PB1 is doing is discouraging people from looking at either right now.

If it's not going to be compatible at all, we should come up with a new name and stop calling it PB.  Maybe Twisted Caps or something.

That said, I don't think that pb2 should be focused on application-level compatibility *right now*.  It's got a bunch of problems left to solve, and what little time Brian can spend to work on it should be spent fixing those problems.

(Can we please stop calling it "newpb", by the way?  Or at least, for consistency, call Twisted 2.4, "newnewnewnewnewnewnewTwisted"?)

Other applications are already using PB though, and many are doing it to good effect.  So let me say this as unambiguously as possible:

PB1 is still supported, and until further notice, it will continue to be.  PB2 is still experimental and is *not* yet supported.  We might not have a lot of development bandwidth to spend on PB1, but bugs are still being fixed, deprecations removed, and APIs updated to reflect the modern state of Twisted.

It can be updated and fixed incrementally while we wait for the Great Revolution of PB2.  Perhaps we can even start making the various APIs converge, so that the migration process will be smoother.

This isn't a new decision or announcement, just a statement of the current state of affairs.  Brian has been very clear about PB2's experimental status all along.  Maintenance on PB1 never stopped.  JP, for example, just recently removed a bunch of grotty old-cred stuff (hallelujiah it's gone) from PB1.  It just seems like because there's this new direction, everyone tacitly assumes that the old stuff will be dropped -- Twisted has an unfortunate history as such things go, but we are getting better about it.

More information about the Twisted-Python mailing list