Go really does do well in the zero-to-hero case, that's for certain. Unfortunately it doesn't fare nearly as well in terms of ease when it comes to continued development.
Well, one part of it is that Flatpak pulls data over the network, and sometimes data sent over a network doesn't arrive in the exact same shape as when it left the original system, which results in that same data being sent in multiple copies - until one manages to arrive correctly.
If you're going to post release notes for random selfhostable projects on GitHub, could you at least add the GitHub About text for the project - or the synopsis from the readme - into the post.
Well, things like the fact that snap is supposed to be a distro-agnostic packaging method despite being only truly supported on Ubuntu is annoying. The fact that its locked to the Canonical store is annoying. The fact that it requires a system daemon to function is annoying.
My main gripes with it stem from my job though, since at the university where I work snap has been an absolute travesty;
It overflows the mount table on multi-user systems.
It slows down startup a ridiculous amount even if barely any snaps are installed.
It can't run user applications if your home drive is mounted over NFS with safe mount options.
It has no way to disable automatic updates during change critical times - like exams.
There's plenty more issues we've had with it, but those are the main ones that keep causing us issues.
Notably Flatpak doesn't have any of the listed issues, and it also supports both shared installations as well as internal repos, where we can put licensed or bulky software for courses - something which snap can't support due to the centralized store design.
To be fair, having to interact with MS Teams with any part of your body is painful.
He won't be allowed to perform at Eurovision with the Windows 95 name/trademark/logo, so it would be hilarious if he switches to a name like Linuxman during it.
Well, there are people running Linux in all manner of ways, like VRChat shaders.
Flatpak already creates executable wrappers for all applications as part of regular installs, though they're by default named as the full package name.
For when inkscape has been installed into the system-wide Flatpak installation, you could simply symlink it like; ln -s /var/lib/flatpak/exports/bin/org.inkscape.Inkscape /usr/local/bin/inkscape
For the user-local installation, the exported runnable is in ~/.local/share/flatpak/exports/bin
instead.
A lot of that data doesn't actually exist, ostree hardlinks data blobs internally, so the actual size on disk is much smaller than most disk usage tools will show.
People love to complain about CMake, often with valid complaints as well. But it - to this day - remains the only build system where I'll actually trust a project when they say they are cross-platform.
Being the Windows maintainer for OpenMW, it used to be absolute hell back a decade and half ago when an indirect dependency changed - and used something like SCons or Premake while claiming to be "cross-platform", used to be that I had to write my own build solutions for Windows since it was all hardcoded against Linux paths and libraries.
CMake might not be the coolest, most hip, build system, but it delivers on actually letting you build your software regardless of platform. So it remains my go-to for whenever I need to actually build something that's supposed to be used.
For personal things I still often hack together a couple of Makefiles though, it's just a lot faster to do.
The predictable interface naming has solved a few issues at work, mainly in regards to when we have to work with expensive piece-of-shit (enterprise) systems, since they sometimes explode if your server changes interface names.
Normally wouldn't be an issue, but a bunch of our hardware - multiple vendors and all - initialize the onboard NIC pretty late, which causes them to switch position almost every other boot.
I've personally stopped caring about interface names nowadays though, I just use automation to shove NetworkManager onto the machine and use it to get a properly managed connection instead, so it can deal with all the stupid things that the hardware does.