Developing GUI applications for Linux is also a huge pain. Developers not familiar with Linux need to learn so many things...
What is X11, Wayland, GNOME, KDE, d-bus, application ids, portals, etc.
Then once you have a working application, users request having it distributed as .tar.gz, snap, flatpak, you name it. Then dependencies are missing on some Linux distribution or there are random bugs with Nvidia graphics cards.
Compare that to developing for Windows, where most things "just work"
> What is X11, Wayland, GNOME, KDE, d-bus, application ids, portals, etc. ... Compare that to developing for Windows, where most things "just work"
This is a weird complaint, and I'm saying this as a mostly-Windows developer. Windows has an insane number of technologies, many of them replacements for older replacements for older replacements ... etc going 30+ years back. Do you know how registration-free COM works, for example? Probably not, yet it is there, and if you go to the Windows section of MSDN and just start reading through the docs, you'll have to read through that too.
You can reasonably argue that it's not a thing that you actually need to know to write an app for Windows, and it's true. But similarly you don't actually need to know what d-bus is, never mind how it works, to write an app for Linux. If you use a reasonably high-level framework such as Qt, it takes care of all that for you. Hell, you can even go for .NET Core + Avalonia to get something very similar to WPF on Windows.
And then there's Electron, which lets you pretend that everything is just a browser...
Nah, writing the apps for Linux isn't difficult at all. OTOH you're right in that distribution is a pain, and end-user support across numerous wildly different distros can also be a pain (especially when they start packaging a patched version of your code in their package repos!).
Yeah that part is just bonkers. Take Discord, for example, probably the most popular "app" that people install on Linux these days. There is a Snap, a Flatpak, a DEB. I can't imagine how much work it is to maintain all of those. Screen sharing is broken in random versions. People say to install the DEB (if you're lucky enough to be on a Debian-based system), but oh, make sure you install via a terminal command with "--fix-broken" to install all dependencies (wouldn't the app store GUI do that? maybe not). Apparently the Flatpak is better, but don't forget to install something called "flatseal" so you can upload files (Flatpaks are sandboxed by default). I imagine Discord tech support gets a lot of angry emails from Linux users who didn't get the "flatseal" memo and think that Discord just sucks at developing software.
What is X11, Wayland, GNOME, KDE, d-bus, application ids, portals, etc.
Then once you have a working application, users request having it distributed as .tar.gz, snap, flatpak, you name it. Then dependencies are missing on some Linux distribution or there are random bugs with Nvidia graphics cards.
Compare that to developing for Windows, where most things "just work"