- cross-posted to:
- technology@lemmy.ml
- cross-posted to:
- technology@lemmy.ml
There has never been a better time to ship a binary app that targets the Linux desktop. And I don’t mean targets its own bundled runtime; I mean truly targets the user’s runtime environment. The time is now.
I have my doubts. If I compile something for Linux today, I don’t believe the chances are great, that this binary will run on an arbitrary Linux.
If that is true, am I able to download some binaries from any distributing package repository unpack it, and run it? Can I just run an Arch-Linux KCalc and run it on an Ubuntu 20.04? Will it be able to run in 25 years?
I think this is the one thing that those package managers will be able to solve.
I understand the critics, but I do not see an alternative as of now.
That’s correct. Flatpak is the present. It’s happening right now.
Is it though? is it integrated by default in your desktop environment? Can you easily add 3rd party repos from GUI? Can you finely edit the sandboxing settings for an app from GUI?
Hell, i can’t even find how to make flatpak apps respect my keymap for keybindings. Inside a flatpak run’ed app, typing respects AZERTY but pressing Ctrl+A will trigger quit dialog (Ctrl+Q) as if i used QWERTY keymap.
is it integrated by default in your desktop environment?
It creates .desktop files and even sandboxes dbus, what more should it do?
Can you easily add 3rd party repos from GUI?
Why would GUI users need to do that?
Can you finely edit the sandboxing settings for an app from GUI?
Imo they’re right, but theres some weird (pro proprietary software) claims in there.
If I ship an app for Windows I don’t have to include the entire Win32 or .NET runtimes with my app. I just use what’s already on the user’s system.
Those cases are rare on windows, most apps package their own versions of dependencies just like with snap/flatpak/appimage (just not so neatly organized) and it sucks.
Backwards compatibility is a major part of why Windows is still the dominant desktop OS.
But thats also a major part in why it sucks and is insecure. Microsoft knows that and has started to break stuff with higher frequency too. You should only freeze interfaces when there is a consensus that there isn’t anything to be improved anymore. You can only build this consensus when you have a clear use case.
I’d argue, that this is impossible for operating systems with desktop and all. So best you can do for backwards compatibility is to only put breaking changes in major versions and still maintain older ones. Of course that means you can’t have major versions to often and now people will complain that your software sucks because it can’t even do X.
Microsoft does this too, but they often release a whole new product instead of version bumps. And by that they accumulate even more technical debt.
Businesses actually care about this! They use ancient proprietary software that is critical to their business whose source code has long been lost to the sands of time.
This isn’t a case that should be handled by FOSS developers, but by courts fining them for putting their employees, customers and business partners at risk! Running software that isn’t maintained by you or a third party is a liability.
Mass containerization and alternate runtimes cannot possibly be the future of desktop apps on Linux. If this is really the direction it’s going, the future will be so shitty that we’ll all end up back on macOS or Windows.
This posts features great complaints but really shitty reasoning. Very immature perspective on things.
If you are so upset about it, name the perfect alternative, contribute to one, or go make one. This post barely approaches solutions and spends all of it’s time whining about the outcome of technology choices without even touching on what they would change.
deleted by creator
They are even worse, since they don’t come with an update mechanism builtin.
That’s the main thing I don’t like about app images. It is just like windows where everything needs to be updated independently.
That’s the main thing I don’t like about app images. It is just like windows where everything needs to be updated independently.
Flatpacks don’t update themselves either, you need a system service to do that. Something similar exists for Appimages, called AppimageUpdate without requiring an appstore for it.
AppImages don’t integrate into the system at all and AppImageUpdate sucks.
Also
flatpak update
go brrrr
As a user of arch btw for many years, does anyone have any link to anything that fully goes into why a lot of distros such as arch don’t have this problem? Packages, runtimes, and dependencies have been a non-issue on arch (and I’m sure other distros with proper package managers) for a long time.
If you use your distro’s up-to-date built and packaged from source applications it’s unlikely you’ll have a problem. Those start when you want to use old packages or packages from a different distro (with different or patched libs) with your system.
Flatpak, AppImage etc. packaged apps will run on (almost) any system and you only need to build them for different processor architectures. So it’s the ovious choice for lazy or profit oriented developers.
Dependencies can absolutely be a problem. Let’s say you have a Python program that relies on an older version of a package due to a breaking change. With Arch those packages are installed in a per-Python interpreter global namespace. So if two applications have conflicting version requirements for a package, you’re kind of screwed. Yes, there are ways around the issue, but it’s not customarily used in Arch.
This is just not a problem with Flatpak. The dependencies can be installed directly with no fears about causing a conflict. Even if the Flatpak itself uses a runtime, that runtime allows the Flatpak to add its Python dependencies as a simple layer on top. This happens independently of any other Flatpaks.