Appimage for me ticks all the boxes for cross distro package as its very portable, simple to run, what are devs trying to do when creating snaps and flatpack?

    • Squid@leminal.spaceOP
      link
      fedilink
      arrow-up
      3
      ·
      11 months ago

      Interesting read, love stuff like this but it seems they’d be a lot of dev overhead to truly make something large and agnostic but still gotta commend it!

  • Avid Amoeba@lemmy.ca
    link
    fedilink
    arrow-up
    9
    ·
    edit-2
    11 months ago

    Software deployment that tackles dependency hell in a secure fashion while providing repeatable, atomic updates and rollback.

    AppImage doesn’t even provide a proper update system.

    • rutrum@lm.paradisus.day
      link
      fedilink
      English
      arrow-up
      2
      ·
      11 months ago

      Can you elaborate on update system? AppImage is just a format, right? Whereas flatpak is a format and an entire toolkit for downloading and running flatpaks.

      • Avid Amoeba@lemmy.ca
        link
        fedilink
        arrow-up
        6
        ·
        edit-2
        11 months ago

        You already said it. Flatpak and Snap both include an entire system around updates and rollback which provide some pretty strong guarantees for update success. AppImage does not. It’s got some libs available that an individual developer could use to implement their own update mechanism but isn’t a built-in. And besides, without a system-level component that manages install/update/rollback, you can’t have any guarantees about the update process. You’re back to the Windows-world per-app update.exe paradigm (or update.sh in Linux).

  • ExtremeDullard@lemmy.sdf.org
    link
    fedilink
    arrow-up
    10
    arrow-down
    2
    ·
    11 months ago

    Aah yes, appimage, flatpak, snaps, progressive web apps, electron apps… The cross-compatibility of the lazy 21st century developer, where a simple IRC-like chat client comes with an entire operating system or an entire browser (which itself is an entire operating system too nowadays), takes up half a gig of disk space, and starts up in over 10 seconds with a multi-gigahertz multicore CPU.

    Just perfect…

      • Squid@leminal.spaceOP
        link
        fedilink
        arrow-up
        8
        arrow-down
        1
        ·
        11 months ago

        Its a massive industry problem where code is so much more heavier where devs are reliant on brut hardware force rather than refining code to be light.

        Not boomer sentiment at all

        • Joker@discuss.tchncs.de
          link
          fedilink
          arrow-up
          2
          arrow-down
          2
          ·
          11 months ago

          It’s been that way since the dawn of computing. Developers will push hardware to its limits and the hardware people will keep making a faster chip. A lot of software was laggy as hell back in the day. Not to mention, it didn’t have any features compared to the stuff now. Plus our shit would crash all the time and take down the whole PC. Sure, you run across some shockingly fast and good apps but those have always been few and far between.

  • callyral [he/they]@pawb.social
    link
    fedilink
    English
    arrow-up
    9
    arrow-down
    1
    ·
    11 months ago

    Appimages do not have repositories, unlike Flatpaks and Snaps. It’s harder to install or update them since there isn’t a package manager for the Appimages.

    I don’t know about Snaps, but Flatpaks are sandboxed, which basically means more security, since apps won’t get access to your system without permission. It’s kind of like Android where apps have to ask for permission to things like camera access, filesystem access, etc.


    While I do use Appimages, they remind me of Windows and having to go to websites to download stuff.

    Personally, I prefer just installing software with my distro’s package manager and resort to Flatpaks or Appimages when it’s not available in the repos.

  • Max-P@lemmy.max-p.me
    link
    fedilink
    arrow-up
    4
    ·
    11 months ago

    Distro packages and to some extent Flatpaks, use shared libraries which can be updated independently of your app.

    So for example, if a vulnerability is discovered in say, curl, or imagemagick, ffmpeg or whatever library an app is using: for AppImages, this won’t be fixed until you update all of your AppImages. In Flatpak, it usually can be updated as part of a dependency, or distributed as a rebuild and update of the Flatpak. With distro packages, you can usually update the library itself and be done with it already.

    AppImages are convenient for the user in that you can easily store them, move them, keep old versions around forever easily. It still doesn’t guarantee it’ll still run in distros a couple years for now, it guarantees that a given version will forever be vulnerable if any of its dependencies are because they’re bundled in, it makes packages that are much much bigger than they need to be, and you have to unpack/repack them if you need library shims.

    Different kinds of tradeoffs and goals, essentially. Flatpak happens to be a compromise a lot of people agree on as it provides a set of distro-agnostic libraries while also not shifting the burden entirely onto the app developers. The AppImage developer is intentionally keeping Wayland broken on AppImage because he hates it and wants to fulfil his narrative that Wayland is a broken mess that won’t ever work, while Flatpak developers work hard on sandboxing and security and granular permission systems.

  • Limitless_screaming@kbin.social
    link
    fedilink
    arrow-up
    4
    ·
    11 months ago

    Flatpaks have the concept of runtimes; instead of downloading the entire qt tooling for a qt app the app could just use the KDE runtime same goes for GTK with the Gnome runtime. Flatpaks also have dependencies which can be shared between multiple apps even when they are not part of their runtimes, they are called “baseapps”. Flatpak apps still use double the space my normal apps take on a fresh install, so I assume using appimages to replace them will leave no space on my SSD.

    Before deciding to settle on using Flatpak I tried to search for appimage permissions and how to set them, but it seems there is no such thing? If that’s true then there’s another advantage for Flatpaks and Snaps.

    Also with all due respect: Flatpak and Snap tooling are not maintained by Probonodb.

  • vexikron@lemmy.zip
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    11 months ago

    I still prefer to run everything built directly from reliable deb sources.

    As an end user… sure, flatpaks and appimages and snaps are I guess neat if you are constantly distro hopping or something, at least in theory.

    But uh, I have already found the ability to play games, develop games and other software, use basic daily software for everyday needs, and have a stable and predictable OS that doesnt crash or have insane misconfigurations caused by some esoteric conflict by just basing everything directly off of deb sources.

    Every once in a while I will have to compile my own build, but this is rare and usually only occurs when trying out something experimental, or, also rare, something that doesnt have an actively and well maintained deb source. In that case its just a matter of doing a build from github when a new version comes out.

    And I can do builds from github because I have saved a lot of storage space from not using bundled installers for all my software, allowing me to store the sources. This is also neat because it allows me to quickly /use/ one of those sources in a project, after I have already seen that it is stable via the software I use that is built on it.

    Finally there is the security angle. Using a myriad of different containerized installers for everything is convenient in that you don’t have to directly worry about source management… until you do, when a source lib is discovered to have a critical flaw.

    When a serious flaw is found in a source library… what’s gonna get updated faster? A containerized installer that you have to wait for the devs, who are busy managing tons of cross platform dependency issues and have to do a new safe stable build everytime any of their many dependencies for their many supported platforms? Or an app specifically built from source libs that either doesnt focus on cross platform, or has different teams specific to maintaining its different supported flavors?

    In my experience, literally all of the time, the ‘direct from source’ software gets updated more quickly than the cross platform bundled installer.

    Further, this whole approach here gives you experience with software that is built on source packages that, as you become more familiar with, and tinker with yourself, gives you insight into what source libs are well coded in terms of cpu/gpu/ram optimization, and which are resource hogs and should be avoided if youre interested in promoting and using software built off of efficient code. I enjoy learning from the good coding techniques of stable, lean and fast programs, and avoiding code that is comparatively unstable, boated, or slow.

  • corsicanguppy@lemmy.ca
    link
    fedilink
    arrow-up
    4
    arrow-down
    1
    ·
    11 months ago
    • ruins single source of truth over installed state
    • thus kills validation and thus consistency and thus repeatability (the holy trifecta of release management)
    • promotes dependency hell
    • promotes redundant installs
    • ‘hides’ installs from enterprise management (eg snmp)
    • you will fail the audit

    But other than being redundant and risky, totally cool.

  • throwawayish@lemmy.ml
    link
    fedilink
    arrow-up
    3
    ·
    11 months ago

    openSUSE’s Richard Brown has given multiple talks over the years comparing these three. I’d suggest anyone to look at those for a great rundown on how these universal package managers compare to one another. His most recent talk can be found here; in which he actually does some kind of recap as well.

  • chon@lemmy.ml
    link
    fedilink
    arrow-up
    2
    ·
    11 months ago

    what are devs trying to do when creating snaps and flatpack?

    Appimages are great for what they do. They’d be even better if we had convenient means of distribution. It’s easy for an intermediate-to-advanced user to go find the thing on some website, download it then chmod +x it.

    A regular user, in contrast, finds comfort in centralized software repositories, where you only have to enter an app’s name and click install. Gnome and KDE, with the help of Appstream, provide Flatpaks for your convenience through Software and Discover, respectively.

    It’s worth mentioning that Alexander Larsson (Flatpak) took some inspiration from Simon Peter’s (Appimage) klik when he was developing the precursor to xdg-apps and Flatpak, glick… What a mouthful :) Cheers!

  • IverCoder@lemm.ee
    link
    fedilink
    English
    arrow-up
    2
    ·
    11 months ago

    IMO Flatpak is the best of them all. I don’t want to bother with repo packages that have complete and unnecessary access to my system. Flatpak neatly installs an app and isolates it, and if I no longer want it I can just easily click “Uninstall” on my Settings app without it leaving a mess or any trace behind, unlike repo packages that manage to screw something as simple as uninstalling itself.

  • PerogiBoi@lemmy.ca
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    11 months ago

    Just download .exes for windows and run them with WINE. Don’t have a single snap or flatpack application. If it doesn’t run then u didn’t need it in the first place 👉😎👉

    Edit: someone DMed me and took this comment seriously. Bless ur heart