▲ | FridgeSeal 13 hours ago | ||||||||||||||||||||||||||||
Oh but of course! The solution to…a problem created directly by a specific approach is to…do even more work ourselves to try and untangle ourselves? And just cross our fingers and just _hope_ that every app/library is fully amenable to being patched this way? Alternatively, we could realise that this isn’t really feasible at the scale that the ecosystem operates at now, and that instead of taking an approach that requires us to “do extra work to untangle ourselves” we should try and…not have that problem in the first place. | |||||||||||||||||||||||||||||
▲ | beeflet 13 hours ago | parent | next [-] | ||||||||||||||||||||||||||||
I don't think it's unreasonable to have a system where every program uses the same version of a library. >And just cross our fingers and just _hope_ that every app/library is fully amenable to being patched this way? It requires some foresight in designing the application, and whether or not you even choose to use that application in the first place. We should strive to decrease the complexity of the system as a whole. The fact that packages are using different versions of the same library in the first place is a canary and the system should disincentivize that use case to some extent. Using static libraries or a chroot or a sandbox for everything is sweeping the problems under the carpet. >taking an approach that requires us to “do extra work to untangle ourselves” we should try and…not have that problem in the first place. I would prefer a system that allows you to link every application to the same library as a default, but also allows for some per-application override, perhaps by using symlinks. That would cover the majority of use cases. But I do not think that dynamic linking is generally in vain. In my own projects, I try to rely on static linking as much as possible, so I understand your perspective as a developer. But as a user I do not want programs to have their own dependencies separate from the rest of the system. | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
▲ | palata 4 hours ago | parent | prev [-] | ||||||||||||||||||||||||||||
> The solution to…a problem created directly by a specific approach is to…do even more work ourselves to try and untangle ourselves? The solution is to be more professional. DLL hell comes from libraries that break compatibility: serious libraries should not break compatibility, or at least not often. Then when they do and you happen to have the issue, it's totally fair to go patch the library you depend on that depends on the breaking lib. Even in proprietary software. The modern way is to use ZeroVer [1] and language package managers that pull hundreds of dependencies in the blink of an eye. Then asking that people compile everything themselves or use the one system deemed worthy of support (usually Windows and the very latest Ubuntu). And of course not caring about security one bit. [1]: https://0ver.org/ |