[Python-Dev] Unclear on the way forward with unsigned integers

Thomas Wouters thomas@xs4all.net
Mon, 7 Oct 2002 23:22:03 +0200


On Mon, Oct 07, 2002 at 03:42:14PM -0400, Tim Peters wrote:
> [Thomas Wouters]
> > Well, I can tell you that __future__ has definately worked. Without
> > it, I would not have been able to upgrade Python on many of our
> > servers -- and because we don't need newer versions ourselves, they
> > would not likely be installed at all. As it is, I can safely upgrade
> > to the next major version when they come out, instead of having to
> > start a lengthy and very energy-consuming customer-acceptance process.
> > And this anal attitude towards compatibility isn't just me, it's
> > company policy ;)

> I'm not sure this counts as a success:  it doesn't sound like __future__ is
> helping you migrate, it sounds like __future__ is helping you *not* migrate
> so far.  What are you going to do when 2.3 comes out, and the things that
> *were* future in 2.2 are no longer choices?  Some code will break if you
> move to 2.3.  Will you be able to get away with saying "but Python 2.2
> warned you about this all along, so we're moving to 2.3 regardless"?  If so,
> then I'd count it a success.

We've already been there (2.0 -> 2.1 -> 2.2) and that's exactly
what we did. Customers had several months, some more, to notice warnings
about deprecated features and the like, and to use the __future__ import if
they wanted newer features. That gives us a very justified 'too bad' if they
come complaining afterwards anyway. It also inspires more trust from the
more, uhm, 'traditional' companies if you have a clear and documented
upgrade path for software. They often have to hire outside programmers to do
the work, and they want to know about upkeep as well.

I could talk for hours about how we are switching from an old
hysterical-raisin[*] setup that was hard to update and practically
impossible to upgrade major portions of, where it would take months to
migrate customers from BSDI 3.1 to BSDI 4.0, to our current 'ideal' setup
where everything is maintained on a small set of 'master' servers that
distribute their changes to hundreds of other servers automatically (which
www.python.org is part of, by the way) -- but I won't bore you with the
details. Rest assured, __future__ imports (or at least 'no breakage without
a warning one major release before', which doesn't strictly require
__future__) make it a heck of a lot easier.

Backwards-doesn't-mean-retarded'ly y'rs,

[*] For some reason the Jargon file lists this as 'hysterical reasons', in
case you're wondering what it is. Must be a hysterical raisin.
-- 
Thomas Wouters <thomas@xs4all.net>

Hi! I'm a .signature virus! copy me into your .signature file to help me spread!