On Thu, Nov 19, 2020 at 10:49:13AM +0400, Abdur-Rahmaan Janhangeer wrote:
The purpose of executables is to make it harder to apply bug fix
releases of Python? I thought that was an unwanted side effect.
I think you mis-understood me by me making myself not clear
I mean bundling this library: https://github.com/pyinstaller/pyinstaller with CPython distributions. Not program executables
I think you misunderstood Chris.
Suppose you distribute a .py script to a million people. Your script is faulty due to a bug in the Python interpreter or std lib. But you don't need to do anything to patch your script: you just tell people to upgrade to the latest version of Python where the bug is fixed. Or you say nothing at all, and when the user's get their mandatory OS-supported upgrade, including Python, it fixes itself.
Instead, suppose I distribute my .py script as an executable. It suffers from the same bug as yours. But to fix it, I have to rebuild the executable, and ship it out to a million people. Until I do, there's nothing my users can do to fix the bug. Upgrading their installed Python will do nothing.
Not only is it more work for me, but it's also a less satisfactory outcome for my users, as it is harder for them to get the benefit of bug fixes in Python.
This is similar to the classic argument between fans of static linking and those of dynamic linking, and like there, there are good arguments for both.
Executables are static; scripts are dynamic.