Backwards Compatibility of Python versions

Steve Holden sholden at holdenweb.com
Mon Feb 4 18:47:57 EST 2002


"Paul Rubin" <phr-n2002a at nightsong.com> wrote in message
news:7x8za8dgle.fsf at ruckus.brouhaha.com...
> "Tim Peters" <tim.one at home.com> writes:
[Paul misunderstands the bugfix process, and wants to produce 1.5.3 and
1.2.1]
[2.1.1 / 2.1.2 confusion]
>
> > If you have messier problems, and you're determined to write code that
works
> > unchanged back through the first Python ever released, then sure --
slicing
> > divmod is clear and works.  ...
>
> No.  I'm taking a practical view of this.  I use HTML tables in my
> webpages even though there's still a few ancient browsers out there
> that don't display them.  But if 25% of browsers didn't support them,
> I'd avoid using them when I didn't need them.  I do avoid making my
> pages depend on Javascript, for basically that reason.
>
"When I didn't need them": surely "must run in old browsers" is not a
partial requirement. Do you really specify your output format as "must
remain compatible with Netscape Navigator 2.0 unless it's really important
not to". No wonder you have problems with the meaning of "backward
compatibility" <0.9 wink>.

> I see publishing Python programs as like publishing web pages.  If I
> have to tell 2% of my users to upgrade those ridiculous old browsers
> to view my pages, I don't mind.  If I have to tell 25% of them to
> upgrade, I'm causing hassles for a significant population and I
> shouldn't do that without a good reason.  If I have to tell 80% of
> them to upgrade, I'm probably going to lose a lot of them.
>
> The question is, what percentage of users are using what Python version?
>
Well, if you want to take a count, add me in to the user population of
1.5.2, 2.0, 2.1.2 and 2.2. And I think there are a few beta copies lying
around from pre-2.2. <grin>

> I bet less than 10% of users have 2.2 right now.  I'm curious about
> the ratio of 2.1 users to 1.5.2 users.  Do you have any idea what it
> is?  I don't know how I'd measure it.  There's no User-agent header
> collected at python.org every time someone runs a Python script.
>
> I go back and forth about whether to code for 1.5.2.  I do like 2.1
> features like +=, and I noticed last night that the "continue"
> statement works differently.  If I had reason to believe that less
> than (say) 25% of today's installations are 1.5.2, then I wouldn't
> bother with 1.5.2; but I think the percentage may be higher than that.

Well, the major problem for most would-be Python software authors right now
is that Red Hat are still shipping 1.5.2 without any real attempt to conceal
it from a user wanting to install some later version from the RPMs. Building
their system so it's hard to upgrade Python without breaking Anaconda was
dumb. Defensible, but dumb. And I think it hurts Python more than the
benefit of being able to say "Red Hat built Python into their system
maintenance software."

I appreciate you are keen to distribute "nifty Python programs". If so, you
might just have to accept the bloat of building installer versions, untilt
someone comes up with a way for installers to determine whether Python is
currently available in an appropriate version or not.

These engineering issues are what will stand in the way of Python's
increasing popularity, which is why I prefer to address them when I see them
raised rather than ignore them. If you insist that Python isn't backwards
compatible, I have to think what you must think about VB.NET, where they
really *have* broken backward compatibility, and in a bug way. Unless VB
application authors are really careful (and many VB programmers aren't
familiar with the concept of software engineering) we're going to see some
really badly broken applications there.

By comparison, Python is a hotbed of sanity. So start working on 1.5.3 right
now. If you ever produce it I'd like to think it would get a prominent
placed on the website. But remember: with very minor exceptions, the rule
for bugfix releases is "no new functionality", so don't expect to sneak
augmented assignments in there, for example!

regards
 Steve
--
Consulting, training, speaking: http://www.holdenweb.com/
Author, Python Web Programming: http://pydish.holdenweb.com/pwp/








More information about the Python-list mailing list