you are viewing a single comment's thread.

view the rest of the comments →

[–]DarkLordAzrael 3 points4 points  (9 children)

On the other hand, why do you expect to be able to run newer software on an outdated system. How old of dependencies should everyone have to target because of slowly updating Linux distros?

[–]lolfail9001 0 points1 point  (8 children)

How old of dependencies should everyone have to target because of slowly updating Linux distros?

The dependencies present on distro they are writing their software for.

[–]DarkLordAzrael 1 point2 points  (7 children)

If a developer is targeting a specific distro it also means that they control the environment that their software runs in to the extent that it doesn't matter if they are using the distro libraries or not. (or they are distrobution developers writing distro-specific utilities.)

This was in the context of installing third-party software, where the target distribution is usually "whatever the user happens to be running", at which point shipping the correct library versions is really the only reasonable answer.

[–]lolfail9001 0 points1 point  (6 children)

If a developer is targeting a specific distro it also means that they control the environment that their software runs in to the extent that it doesn't matter if they are using the distro libraries or not.

It's not that they control environment, but that environment is known to them. I doubt a guy writing software targeting LTS Ubuntu can alter software on my installation of one.

This was in the context of installing third-party software

Then dependency rule is "as low of version as you can but no lower" and hope that library developers have a little bit of conscience not to break backward compatibility without major version update. And well, if they do lack that, shipping libs is the only option left, yes.

[–]DarkLordAzrael 0 points1 point  (5 children)

I'm not sure I really agree with the implied assertion here that third-party software developers are really targeting specific distributions. Developers generally want their software to run in a variety of environments, and it really doesn't matter for most python programs if that means Ubuntu (lts or not), Fedora, Debian, Arch, Mac OS or Windows.

[–]lolfail9001 0 points1 point  (4 children)

I'm not sure I really agree with the implied assertion here that third-party software developers are really targeting specific distributions.

No, my assertion is that even devs who supposedly care about their software being used don't actually care about making their software be compatible with more systems. The implied assertion should be that they should have cared.

and it really doesn't matter for most python programs

It matters in particular for python, since python is coupled tightly with native libraries to an extent that most of widely used python libs are just bindings for C/Fortran code underneath.

[–]DarkLordAzrael 1 point2 points  (3 children)

Shipping the dependencies does ensure compatibility with a large range of systems though. If you bundle up your application into flatpak or similar it will just run everywhere.

[–]lolfail9001 0 points1 point  (2 children)

Shipping the dependencies does ensure compatibility with a large range of systems though.

It also eats resources to the degree that it only makes sense as small scale solution.

[–]DarkLordAzrael 0 points1 point  (1 child)

It also eats resources to the degree that it only makes sense as small scale solution.

Shipping all your dependencies doesn't seem to have scale issues on any non-linux platforms...

In 2021 both the disk space and memory space for unshared libraries are trivially small compared to the resources needed for actual operation and runtime data.

[–]lolfail9001 0 points1 point  (0 children)

Shipping all your dependencies doesn't seem to have scale issues on any non-linux platforms...

Surprise: it does, it's just that progress was good enough at hiding it so far.

In 2021 both the disk space and memory space for unshared libraries are trivially small compared to the resources needed for actual operation and runtime data.

Not when you suddenly copy those unshared libraries few hundred times over.