Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.misc > #11850

Python deliberately breaking backward compatibility (was Re: What’s Your Least Favourite Programming Language?)

From Kragen Javier Sitaker <kragen@canonical.org>
Newsgroups comp.lang.misc
Subject Python deliberately breaking backward compatibility (was Re: What’s Your Least Favourite Programming Language?)
Date 2026-08-28 21:03 -0300
Organization Primarily biological and memetic
Message-ID <87fqzxbxoe.fsf_-_@debian> (permalink)
References (1 earlier) <20251031081742.00003c76@gmail.com> <87ik4vdrxw.fsf@debian> <116r3k4$218ss$5@dont-email.me> <871pbido8z.fsf_-_@debian> <116t2ic$2ok8c$4@dont-email.me>

Show all headers | View raw


Lawrence D’Oliveiro <ldo@nz.invalid> writes:
>>> On Thu, 27 Aug 2026 21:11:55 -0300, Kragen Javier Sitaker wrote:
>>>> the Python maintainers have adopted a policy of deliberately
>>>> breaking standard library backward compatibility in every point
>>>> release.
>>>
>>> In what way?
>>
>> They call it “removing dead batteries from the standard library” ...
>
> So they don’t want to keep accumulating legacy baggage that just adds
> to the ongoing support burden.

Yes, that is their motivation for adopting the policy of deliberately
breaking standard library backward compatibility in every point release.
However, their motivation, understandable though it is, is irrelevant to
my point, which is that as a result of this policy, Python has, in
practice, gone from being one of the *most* portable languages to one of
the *least*; you can’t even reliably run a Python application you wrote
on Ubuntu 25.10 (Python 3.13) on Ubuntu 26.04 (Python 3.14).

In Python 3.14, the list of things removed to deliberately break
backwards compatibility in it is relatively small; it includes ast.Num,
asyncio.FastChildWatcher, pickling itertools iterators,
`pty.master_open()`, and sqlite3.version.  And they’re changing the
default start method of `multiprocessing` from `fork()`, which usually
won’t crash people’s code but will introduce massive performance
regressions in some cases.
<https://docs.python.org/3.13/deprecations/index.html>

> Every open-source project does that.  The key is to support the
> important stuff that people care about.

In some sense, this is obviously true, but there are enormous
differences of degree.  The current Python policy is way down at the
gratuitous-instability end of the spectrum.  JavaScript, by contrast,
still supports `with`, and glibc still supports `gets`.

> Does anybody still want to use the “cgi” module?

Yes.  Although CGI was pretty costly when it went out of style in the
01990s, hardware has improved dramatically, and CGI can now handle half
a billion hits per second on one server
<https://jacob.gold/posts/serving-half-billion-requests-with-rust-cgi/>
which is enough for all but the biggest public websites.  CGI is a
relatively low-tech, simple interface that is extremely widely supported
by web servers.  For cases where the Python startup overhead is killing
you, even on current hardware, you can use the `cgi` module with FastCGI
<https://www.asmallorange.com/help/article/aso-using-python-with-fastcgi>.

Nowadays, hardware is so fast that the CGI execution model has seen a
huge resurgence, mostly using a slightly different interface from the
original CGI — they call it “serverless” now.

I have three or four CGI scripts written in Python that I’ve been using
for many years without having to maintain them.

The `cgi` module probably should not have been added to the standard
library in the first place — its interface is kind of error-prone and
clumsy.  But, having been added, it should not have been removed.

In addition to `cgi` they also removed `cgitb`, which was an invaluable
aid to debugging Python programs that had nothing to do with CGI or the
Web; simply by running

    import cgitb; cgitb.enable(format="text")

at the beginning of program execution, your stack traces include the
values of local variables, which is very frequently enough to make bugs
trivial to track down.  I assume the Python maintainers removed this
functionality because they didn’t know about it.

> Sun “au” file format?

Yes, obviously?  There are plenty of audio data files from 30 years ago
in .au format.  If you have an existing Python application that can read
them, how is it beneficial to break it?  Was there a lot of maintenance
load involved due to the rapid changes in the .au file spec?  Moreover,
users of such an application would suffer even if they don’t have any
.au files — the application will crash at startup with an ImportError,
because it foolishly used the standard library support for the most
popular audio file format.

> A Unix password encryption library that doesn’t keep up with current
> password encryption formats?

This one I’m more skeptical of the importance of.  But your other two
examples are obviously egregiously bad.

Kragen

Back to comp.lang.misc | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

What’s Your Least Favourite Programming Language? Lawrence D’Oliveiro <ldo@nz.invalid> - 2025-10-31 06:48 +0000
  Re: What’s Your Least Favourite Programming Language? David Brown <david.brown@hesbynett.no> - 2025-10-31 13:28 +0100
  Re: What’s Your Least Favourite Programming Language? John Ames <commodorejohn@gmail.com> - 2025-10-31 08:17 -0700
    Re: What’s Your Least Favourite Programming Language? bart <bc@freeuk.com> - 2025-10-31 22:47 +0000
    Re: What’s Your Least Favourite Programming Language? Lawrence D’Oliveiro <ldo@nz.invalid> - 2025-11-01 06:26 +0000
    Re: What’s Your Least Favourite Programming Language? BGB <cr88192@gmail.com> - 2025-11-03 14:05 -0600
      Re: What’s Your Least Favourite Programming Language? Lawrence D’Oliveiro <ldo@nz.invalid> - 2025-11-03 20:29 +0000
        Re: What’s Your Least Favourite Programming Language? BGB <cr88192@gmail.com> - 2025-11-03 14:55 -0600
          Re: What’s Your Least Favourite Programming Language? Lawrence D’Oliveiro <ldo@nz.invalid> - 2025-11-03 23:10 +0000
            Re: What’s Your Least Favourite Programming Language? BGB <cr88192@gmail.com> - 2025-11-04 12:02 -0600
              Re: What’s Your Least Favourite Programming Language? Lawrence D’Oliveiro <ldo@nz.invalid> - 2025-11-04 20:32 +0000
      Re: What’s Your Least Favourite Programming Language? John Ames <commodorejohn@gmail.com> - 2025-11-03 15:56 -0800
    Re: What’s Your Least Favourite Programming Language? Kragen Javier Sitaker <kragen@canonical.org> - 2026-08-27 21:11 -0300
      Re: What’s Your Least Favourite Programming Language? Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-08-28 04:42 +0000
        Write Once, Run Anywhere (was Re: What’s Your Least Favourite Programming Language?) Kragen Javier Sitaker <kragen@canonical.org> - 2026-08-28 16:43 -0300
          Re: What’s Your Least Favourite Programming Language? Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-08-28 22:37 +0000
            the history of Java in Android (was Re: What’s Your Least Favourite Programming Language?) Kragen Javier Sitaker <kragen@canonical.org> - 2026-08-28 20:27 -0300
              Re: the history of Java in Android (was Re: What’s Your Least Favourite Programming Language?) Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-08-29 01:30 +0000
                Re: the history of Java in Android (was Re: What’s Your Least Favourite Programming Language?) Kragen Javier Sitaker <kragen@canonical.org> - 2026-08-29 15:24 -0300
                Re: the history of Java in Android (was Re: What’s Your Least Favourite Programming Language?) Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-08-29 21:57 +0000
            Python deliberately breaking backward compatibility (was Re: What’s Your Least Favourite Programming Language?) Kragen Javier Sitaker <kragen@canonical.org> - 2026-08-28 21:03 -0300
              Re: Python deliberately breaking backward compatibility (was Re: What’s Your Least Favourite Programming Language?) Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-08-28 18:10 -0700
                [meta] Date-formats in postings (was Re: Python deliberately breaking backward compatibility (was Re: What’s Your Least Favourite Programming Language?)) Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-08-29 06:39 +0200
              Re: What’s Your Least Favourite Programming Language? Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-08-29 01:42 +0000
      Re: What’s Your Least Favourite Programming Language? John Ames <commodorejohn@gmail.com> - 2026-08-28 09:59 -0700
  Re: What’s Your Least Favourite Programming Language? Kragen Javier Sitaker <kragen@canonical.org> - 2026-08-27 20:09 -0300

csiph-web