Originally posted by Weasel
View Post
- The current system is perfect for open source software, the one that is compiled, packaged and maintained by your distribution. To a lesser extent, it also applies to software you compile yourself.
- The real problem only arises when you try either:
- To run a proprietary or unmaintained app on a recent system
- To run a recent app on a legacy system.
The simple answer in case of the latter case is to upgrade. You should really do it and come back when you just want to run your legacy apps on an updated system (together with the recent app), but I agree that this is not always easy or possible.
Luckily, snap, flatpack, appimage and the various container solution solve both issues. I would then advise to use it only when a software is not available from your distribution, and unmaintained or proprietary, or if you want some clean "sandboxing" (clean uninstall).
THE major issue with self-containing every dependency, is that you end up using old libraries, that no longer play nice with modern systems: have a look at the ut2004 port: no easy alt-tab, uses OSS for sound, outdated SDL for input, etc. You can also have security issues. And this is the reason why I prefer the Linux approach, where you always only have the latest and greatest libraries. This works well for 99% of the software, so I believe that calling its design "broken and rotten at core" is something I very strongly disagree about.
When you have a broken (with regards to this paradigm, of course) app such as a proprietary app, then you have those various solutions, that work admirably well for the use case.
Nix is also an awesome concept if you really have to use some complex and incompatible dependencies; try it (I yet have to)! It also works from userspace, or on the NixOS distro. One case where such problems might arise with up-to-date dependencies is if two different projects use two incompatible forks of the same library. Nix looks like the traditional package management approach, without the issues.
Now, to disagree on something else: Bloat. Windows *is* bloated, as its solution to dependencies is SxS, as oiaohm wrote (windows keeps a copy of every dll it encounters, if you want).
Comment