On 2021-09-26 00:14, jack.jan...@cwi.nl wrote:
I’m getting increasingly worried about the future of Python, and those
worries have been exacerbated by the new yearly release rhythm, and the
lack of a stable C-API that is full enough to entice extension writers
to use it.
PyPI packages and wheels are targeted to specific Python versions, which
means that any project that depends on some of the larger extension
packages (of which there are many, and many of which are must-have for
many projects) now start lagging Python versions by years, because
somewhere deep down in the dependency graph there is something that is
still stuck at Python 3.8 (for example). I fully understand that 3.8 is
good enough for the developers of that package, and that they have more
pressing things to do than porting to 3.9 or 3.10, but it now keeps any
project or package that depends on their software on 3.8 as well.
And I also fully understand that some other developer who creates a new
package that is essential to my application only targets the current
Python release, or maybe one release back, but now if I need both the
new package and and older one I’m up the well-known creek without a paddle.
Building packages from source has become pretty much impossible
nowadays, especially if your project is multi-platform and needs to
interface to specific hardware, and you want to do the right thing with
CI/CD builds and all that. On Linux/MacOS you have a chance when you try
to specify all the dependencies for third party libraries and what not,
but on Windows you’re dead in the water. And that is assuming you have
the time and are smart enough to back port the new package to the old
Python release, or the old package to the new Python release (and for
the latter there’s probably a good reason why the developers haven’t
done so already). Before you know it you have to install a couple of
graphics card APIs for some obscure AI feature used by something you’ve
never heard of, Cython for something else, and obscure vendor libraries
for something else again.
I think we really need to come up with some scheme whereby extension
packages become more long-lived than a single Python release...
You mean, something like the Python ABI (PEP 384, Stable Application
Binary Interface)?
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at
https://mail.python.org/archives/list/python-dev@python.org/message/WFGX4ZRIRXQK4NZ6JSRZRQT7463FGFVG/
Code of Conduct: http://python.org/psf/codeofconduct/