The problem is that NixOS achieves all of this by breaking assumptions that almost all Linux software relies on. Most Linux binaries assume the Filesystem Hierarchy Standard exists, and they expect interpreters and libraries at fixed global paths.
This is a problem of those applications, we began to make appimages that do not make those assumptions and work in NixOS directly. (And this also means it works in places like alpine where a lot of those binaries wont either).
People like to throw the FHS around but the reality is that not a single distro follows it fully, I wouldn’t rely on it to be the same in the near future at all.
At this point, FHS feels more like a hindrance to me. Also, it was made in a time with very limited disk capacity and personal computers weren’t much of a thing yet.
@MonkderVierte@Samueru_sama I don’t think the standard (more like a guideline) is bad in itself: consistence of file-system use across applications is good for all our sanity. It is the assumption that all applications use it rigorously that is the problem. The word is SHOULD, not MUST.
While i agree that a standard is useful, i think the FHS is out of date; it has lot’s of fragmentation where it is not needed anymore, instead of keeping it simple. And also lots of reinterpretations, which makes it even more confusing. Which results in some people who learned FHS thing (but never why it happened) keeping slave-ish to it and doing nonsense in major distros. Which, again, results in small niche distro being forced to it too, because they lack the manpower to adapt the tooling.
Most of these are still relevant issues afaik, so yeah… appimages are just not a solution for everything. Same as stuff like flatpak and snap. These are nice for when you just need some little standalone app that doesnt do a lot of compute heavy stuff, but they will never replace native implementations.
The points in the screenshot are just false and outdated, the guy even says that it doesn’t work on every distro lol
This is signal made with sharun working on ubuntu 12.04 a 14 year old distro: https://imgur.com/a/1f5S0P7 The distro is so old that internet no longer worked lol, had to use a flash drive to transfer the appimage.
I actually did a quick test installing an alpine linux container and about 10 GUI apps vs appimage and appimage used less storage, now this comparison was flawed because I later realized that the alpine stable repo was super old and for example GIMP was pulling the gtk2 version instead of the gtk3 one (which brings all of gtk2 into the system instead of sharing the existing gtk3) but you get the idea of how close we are.
For updates and desktop integration use AM or soar
but they will never replace native implementations.
Eden makes its appimage using sharun, they made it with PGO optimizations on it which has a ~10% increase in FPS.
native implementations wouldn’t bother doing this, in fact PCSX2 had to tell people to not use the official archlinux package while it existed, because archlinux compiled it with generic flags which was horrible lol
This is also the reason why this benchmark showed appimage performing much better, you are free to optimize your application, while distros packages, flatpak, etc you often have to deal with packaging policies that do not allow this:
This is a problem of those applications, we began to make appimages that do not make those assumptions and work in NixOS directly. (And this also means it works in places like alpine where a lot of those binaries wont either).
People like to throw the FHS around but the reality is that not a single distro follows it fully, I wouldn’t rely on it to be the same in the near future at all.
At this point, FHS feels more like a hindrance to me. Also, it was made in a time with very limited disk capacity and personal computers weren’t much of a thing yet.
@MonkderVierte @Samueru_sama I don’t think the standard (more like a guideline) is bad in itself: consistence of file-system use across applications is good for all our sanity. It is the assumption that all applications use it rigorously that is the problem. The word is SHOULD, not MUST.
While i agree that a standard is useful, i think the FHS is out of date; it has lot’s of fragmentation where it is not needed anymore, instead of keeping it simple. And also lots of reinterpretations, which makes it even more confusing. Which results in some people who learned FHS thing (but never why it happened) keeping slave-ish to it and doing nonsense in major distros. Which, again, results in small niche distro being forced to it too, because they lack the manpower to adapt the tooling.
Most of these are still relevant issues afaik, so yeah… appimages are just not a solution for everything. Same as stuff like flatpak and snap. These are nice for when you just need some little standalone app that doesnt do a lot of compute heavy stuff, but they will never replace native implementations.
The points in the screenshot are just false and outdated, the guy even says that it doesn’t work on every distro lol
This is signal made with sharun working on ubuntu 12.04 a 14 year old distro: https://imgur.com/a/1f5S0P7 The distro is so old that internet no longer worked lol, had to use a flash drive to transfer the appimage.
we use a lot less storage than flatpak and this comparison is outdated, we have reduced the size of a lot of apps since then.
I actually did a quick test installing an alpine linux container and about 10 GUI apps vs appimage and appimage used less storage, now this comparison was flawed because I later realized that the alpine stable repo was super old and for example GIMP was pulling the gtk2 version instead of the gtk3 one (which brings all of gtk2 into the system instead of sharing the existing gtk3) but you get the idea of how close we are.
For updates and desktop integration use AM or soar
Eden makes its appimage using sharun, they made it with PGO optimizations on it which has a ~10% increase in FPS.
native implementations wouldn’t bother doing this, in fact PCSX2 had to tell people to not use the official archlinux package while it existed, because archlinux compiled it with generic flags which was horrible lol
https://www.reddit.com/r/linux_gaming/comments/ikyovw/pcsx2_official_arch_linux_package_not_recommended/
This is also the reason why this benchmark showed appimage performing much better, you are free to optimize your application, while distros packages, flatpak, etc you often have to deal with packaging policies that do not allow this:
https://www.reddit.com/r/linux/comments/u5gr7r/interesting_benchmarks_of_flatpak_vs_snap_vs/