← Back to context

Comment by simoncion

6 months ago

> First of all, *nix is not synonymous with C++ programming...

Agreed. This is obvious. You even mention it below:

> Second, you can have shared libraries/runtimes on Windows or in Java world. There exists versioning and *nix is not unique in that.

As you said, Windows has the same issue (because it's a fundamental problem of using libraries).

> Third, DLL hell does exist in *nix environments too.

IFF the publisher of the library fails to follow the decades-old convention that works really well.

> Te versioning mechanism you mention is a technical solution to a people problem and it doesn't work perfectly.

Sure. Few things do. That's what pre-release testing is for.

> Things do break if you relax your dependency constraints too much.

Yep. That's why we test.

> So you inevitably end up with multiple versions of the same library ... on the same machine...

Sure. But they're not copies of the same version. That's the entire point of the symlink-based shared object naming scheme (and the equivalent in Windows (IIRC, it used to be called SxS, but consult the second bullet point in [0])).

[0] <https://learn.microsoft.com/en-us/previous-versions/visualst...>