> It's a garden alright but there is no wall. I've made packages out of my own programs and installed them on my system. Arch Linux literally has a repository of user packages.
What I'm saying is, you have to go out of your way and put in a bunch of work to install something if it isn't in the repo. This is not the case on Windows or MacOS (or DOS, or RiscOS, or the original Mac, or NeXT, or basically any desktop operating system that has ever existed except for Linux).
> I don't get the multiple disks thing. Personally I want to virtualize disks away into a single magical root file system.
It's a bad abstraction that hides the true origin of files and causes significant problems if one of those disks ever disappears. In sane desktop operating systems I can run applications off of a USB drive and remove it when I'm done. This is possible in Linux, of course, it's just that absolutely nothing is designed to handle it so you have to put in a ton of work to make it happen.
> but would require a lot more static linking than distributions are comfortable with.
You don't even need static linking, you can use LD_LIBRARY_PATH and a custom startup script in a lot of cases, it's just a lot more work than it should be and fails in weird ways because no one expects this kind of thing. Trust me, I've been doing this for years and years now.
> Windows makes this easy because the application's directory is magically added to the library search path. Applications can just dump all their DLLs into the same folder as the EXE and it will work. They essentially statically link their dynamic libraries. Users end up with tons of duplicated DLLs, distributions don't like that.
Which is silly in my opinion, and also an artifact of Linux Desktop never having the concept of separation between platform and application. This makes Linux great for appliances and shitty for a personal computer. When you have a reliable base system of commonly used libraries a lot of the problems go away, you get security updates for libc and openssl and whatnot, and chances are whatever other DLLs you're using you are the only application on the system using them anyway[0].
> Multiple versions of applications and libraries is technically possible, some distributions have attempted this. Most reject this idea because it would increase maintainer workload.
Yeah, poorly thought out ways of doing things have consequences like that. In sane desktop OSs you don't need an army of unpaid third party maintainers. I've used some of those distributions you're talking about (Gobolinux, for instance) and they never caught on because the community hates the concept.
> This use case is strange to me as well. When I set up a new computer with Linux, I download the applications from the repository.
What about computers not connected to a network? One that I have to drive several miles away from a non-metered network to get to? This is my point, many such use cases are never considered.
> Yes. Linux users and distribution maintainers usually look at the operating system like a complete system, not just a support layer for applications. When maintainers package software, they integrate the software's parts into the overall system, every file in its proper place, every link is maintained. I believe this is cultural.
I agree, and it's why I think Linux will never make a good desktop because all that neat and orderly curation means things will break the second the unpaid third party package maintainer leaves, or a core library makes a non-backwards-compatible ABI change, or someone dared to try and install a library that "conflicts" (usually by being more up to date) with one you already have installed. This is why you only have a choice between crusty-but-stable distros and rolling release distros that break frequently. I can run almost every program available for Windows today on Windows 7, which is nearly 12 years old. I can run applications compiled for Windows 95 on Windows 11 without writing a single line of C or changing a build script.
> It's better to just release your software. The community will package and integrate it for you if there's enough demand.
If it is open source, and if there's a enough demand. I think that's bullshit. I should have the freedom to put any license I want on my software and the user should still be able to have a low-effort install experience. I shouldn't have to kowtow to some unpaid third party package repo for distribution, I should be able to mail my application to you on an SD card. That, to me, is the freedom of personal computing.
> Alternatively, I've found that Arch Linux packages are really easy to create. Just one simple shell script and there's plenty of documentation and examples online. I just ignore all the other distributions.
I don't think I should have to setup finicky build environments and compile software from source to make my own package just to use some goddamned software. I honestly don't know why Linux desktop people think this is a reasonable expectation.
Needless to say, I have a very strong opinion on this point, and you haven't made any arguments I haven't seen before in my 20 years of using Linux. You are not going to change my mind, just as I am not going to change yours, because we have different priorities and culture regarding the tradeoffs of the different methods.
Knowing this, you felt for some reason it was necessary to argue with me, why? The only reason I can think of is that you want to argue for the sake of some imaginary "undecided" reader, as a form of advertisement for Linux. Unfortunately this happens literally every time I mention not liking Linux, hence my initial reluctance to even mention why I don't like Linux. Because another reason I hate the Linux desktop is that its community is full of people who feel the need to engage in performative argumentation.
[0] https://drewdevault.com/dynlib