 Today, I want to address a serious issue within the Linux community, and that is the issue of this debate that people love to have between snaps, flatpacks, and app images. Because I think most of the community do not realize that snaps, flatpacks, and app images are actually not the same thing. They don't actually serve the same purpose. Yes, they're all three packaging formats available for Linux if, for whatever reason, their Linux distribution doesn't package a piece of software natively. It's not available in your distribution's repositories. Then you can go grab a snap or a flatback or an app image, but they don't actually do the same thing. What snaps do is different than what flatpacks do versus what app images do. And this is one of the things people don't understand, because I see these pointless debates, especially in places like Reddit and chat rooms and things like this, where the biggest one I see all the time is, why doesn't Canonical, the company behind Ubuntu, why don't they drop snaps and just adopt flatpacks? Because flatpacks are better. Everybody else is using flatpacks. Why doesn't Ubuntu and Canonical drop snaps and adopt flatpacks? Well, let's discuss that. For one, Ubuntu is a server distribution, primarily Canonical, the company behind Ubuntu, primarily makes their money in the server market with Ubuntu Server. And guess what? Of these three packaging formats, snaps, flatpacks, and app images, only one is actually built and designed to work with server software. And that's snappacks. So will Ubuntu ever drop snaps, which actually work on the server, to adopt flatpacks, which doesn't? No, absolutely not. That would be idiotic on their part. Another thing I don't think people realize, especially newer to Linux users that see all these people shilling for flatpack, is Ubuntu created snaps long before flatpack existed, right? It's the older packaging format. It's not like they created a new thing when flatpack already existed. They created snaps and then later Red Hat created flatpacks. So it's not like they're anti-flatpack like they decided to go a different route than flatpack. Flatpack wasn't around when Canonical created snappacks. Originally, they were called snappy packages. Before that, they were called click packages. And they were designed for Internet of Things devices, for mobile phones, and again, for the server, which again is primarily what Canonical is interested in. And that's why snaps, again, I just want people to understand snaps and flatpacks and app images, they do have real differences that never get addressed. And that's what I'm going to address today. First of all, let's talk about who created these packaging formats. Obviously Canonical created snap packages for Ubuntu. Red Hat created flatpack. And then App Image actually was created by an individual named Peter Simon. So there's no corporation behind it. It's not a corporate thing the way snaps and flatpacks have a corporation driving their development. App Image is more of a community-based project. One of the big selling points of all three of these package formats is the fact that they have support for sandboxing. Now, just because they have support for sandboxing, that doesn't mean sandboxing is mandatory. Because with snaps, you can have a snap that is not sandbox. That's not typically how Canonical likes you to package snaps. But it is possible to do that. Flatpack, though, it is mandatory that you sandbox your app. And with App Images, they don't really care. You can sandbox it if you want, or you don't have to. Another difference is the ability to run these programs without needing Brute or Sudo. So with snaps and flatpacks, you're going to need root permissions to actually install the snap or the flatpack. But after it's installed, any regular user can actually launch the package. With App Image, you don't need Brute or Sudo at all. Because App Images, you just download the App Image and you run it. You execute it. So you don't really, it's a little bit different. Again, there's these minor differences between these three packaging formats. One area of gripe is the native theme support with your GTK themes and your Q themes. Now technically, snaps, flatpacks, and App Images all have native theme support. But honestly, the native theme support in all three is a bit flaky. I would say Flatpack probably has the best theme integration, but it's not great. Snaps are a little worse than Flatpack in that department. I would say App Images are probably the worst of the three. One big change in recent years is that for a long time, snaps were the only one of these three package formats that actually had an online store, an app store where all the snaps are listed on a store and you can go find any snap package that exists. It was one of the reasons why, especially in the early years of all three of these package formats, snaps really had a lot more adoption than flatpacks and App Images. It's because it was just easier to figure out where all the snaps were. They're on this store called Snapcraft. I can just go search for a package, boom, hit the install button, and away I go where flatpacks and App Images really didn't have a central store, a central repository online where I could go search for all the flatpacks or all the App Images. But that's changed here in the last couple of years. Flatpack created FlatHub, so now they have their own Snapcraft kind of site called FlatHub where all the flatpacks are, right? And then App Image recently created a store as well called App Image Hub as well. So now all three of these packaging formats do have this online web store, app store presence. Let's talk about updates. So snaps and flatpacks and App Images all have support for automatic updates, meaning the packages will automatically update themselves. You don't really need to do anything. Now with snaps and flatpacks, you can turn off the updates if you don't want them. I will say out of the box, most App Images actually aren't set up to auto update, but App Image does have that capability if the person packaging the App Image wants it. One of the big complaints from the haters of snaps, flatpacks, and App Images is the size of these packages. And the reason these packages are a little bigger than native packages is because they contain a lot of dependencies, a lot of needed libraries. Of the three package formats, which one is the smallest in size, App Images tend to be a little smaller than flatpacks and snaps by comparison, but none of them are slim. All of them are going to be a little heavier than a native package. But that's just the nature of this thing. You can't bundle all the dependencies you need to have a self-contained application without it being bigger than a native package. That's just a trade-off that's always going to be there. One of the big drawbacks with snaps is the fact that some snap packages, not all, but some snap packages do have a noticeable lag in start time. They take a little longer to start up when you first open the program. As usually big programs, things like LibreOffice, for example, may take an extra second or two compared to the native package format of LibreOffice. But again, it's just a second or two, and it's not every program. I have a ton of snaps installed on my system. Most of them I never even think about start time because they pretty much are instant for the most part. It's mainly the bigger programs that is kind of noticeable. Another drawback with Snap is the Snapcraft Store and all the back-end stuff with Snap because snaps were the only one to have that central store in the beginning and Canonical owns it. It's all proprietary on the back-end. They haven't open sourced the Snap servers, now the snap packaging formats. When you create your own individual snaps, you can license that as whatever. It can be free and open sourced software, but just know especially the online stuff with the Snapcraft Store and all of that, all of that is proprietary software. Now let's talk about some of the drawbacks with Flatpak. My biggest complaints with Flatpak, and I have two. The biggest complaint I have with Flatpak is how you run a Flatpak, how you execute it because you can't just type name of a program in a terminal or a run launcher and it launched that program as a Flatpak. You have to do Flatpak, run, and then the name of a program, and the name of the program is going to be something like com.flathub.nameaprogram or whatever it happens to be. It's going to be some weird string, and I hate that about Flatpaks. It really makes, especially scripting with Flatpaks a little weird. The other big disadvantage of Flatpaks is, again, Flatpaks is not designed for the server, right, where snaps, you know, I can set up a NextCloud server. I actually have my own personal NextCloud server. I think I did a video one time installing NextCloud as a snap. You load up a boon-to server or whatever server, it doesn't have to be a boon-to, but snaps have to be available on the system, and then you do a snap install NextCloud, and it sets up the entire LAMP stack for you, right, the Apache, PHP, and MySQL and all that, NextCloud, and you know, it's so easy. It's seriously one of the most amazing things ever. When you understand snaps on the server, like it clicks, like it really makes a lot of sense, and Flatpaks, unfortunately, doesn't have anything like that available. And some of the pros and cons with app images, I think one of the coolest thing with app images is they're essentially like a .exe file on Windows, like an executable on Windows, right. You just download a program, this app image, right, and then you just execute it. You don't, you don't insert all anything, right. It's its own self-contained ready-to-run program, and I love that, and it really is convenient, especially if you're going to keep multiple versions of the same program on the system. They're just a separate package, right, this separate executable that you keep. And if you want to go back to a previous version of a piece of software, for example, I keep multiple versions as an app image format of Kaden Live on my system, just in case, because sometimes I want to open older project files that I saved in an earlier version of Kaden Live, and app images just makes keeping some of these older pieces of software around a little easier. Really the biggest disadvantage of app image is lack of adoption, lack of programs available as app images. One of the things that Snap had in the early days was it had that Snapcraft store, and it had Canonical pushing it, and there's a ton of programs packaged as snaps. And here in the last couple of years, once Flatpak kind of got its act together, especially creating Flathub, Flatpaks have become rather popular here in the last couple of years especially. And pretty much there's plenty of Flatpaks. There's plenty of snaps, chances are you're going to find whatever popular program you're looking for packaged as either a Snap or Flatpak or both. That's not the case with app image. App image kind of lags behind in packaging because you need people to actually go and package these things, right? And corporations like Canonical can pay people to work on snaps. Red Hat can pay people to work on Flatpak, right? There's money behind this stuff. It's a big deal to those corporations where app image being a community project, unfortunately, again, it lags behind as far as just the number of packages that are available in the app image format. In the end though, for me, I use all three formats because sometimes I find pieces of software that's only available in a specific format. It's only available as a Snap or it's only available as a Flatpak or it's only available as an app image. And I don't care if I want the program, I'm going to install it in whatever package format because why wouldn't I? You know, I'm not going to not run a piece of software that I really need because for whatever reason, I have a problem with a package format, right? Some of you guys take these package format things seriously to the point where I've actually seen people online say they won't run a piece of software if it's only available as a Snap or they won't run a Flatpak or whatever it happens to be. And to me, that is one of the most idiotic things I think I've ever heard. Ultimately, I think we, the Linux community, we just need to calm down a little bit. We need to lower the temperature, especially on these debates. Snaps versus Flatpaks and Snaps versus App Image or whatever it happens to be because those package formats are not even remotely the same thing as I've already demonstrated. Anybody that is starting one of these idiotic threads on Reddit, like Canonical needs to drop Snaps for Flatpaks. Again, they don't know what the hell they're talking about. Snaps work on the server. Ubuntu is a server operating system. Flatpaks don't. But I'd be enough when these people post these ridiculous threads on these Linux subreddits, they'll get like 2000 thumbs up, you know, these weird upvotes and everybody will, yeah, you tell Canonical, man. And I'm like, oh, they're not the same packaging format. They don't do the same things. That's all I wanted to say. Peace.