Outside of Dev work unfortunately Linux is not that much fun. If you need to do accounting, graphics or other work there are options on Linux but they are usually way behind what Mac or Windows are offering.
Even as an desktop developer, often Linux is 2% of the user base, very vocal, used to software being free, and with infinite OS variations. That's not very compelling.
If I was in the market of workstation software such as CAD, Music DAWs, industrial automation etc. I would much rather have control over the base OS by shipping a customised version of Debian or similar. This would be very compelling for professional users also, who don't want the consumer-oriented cruft and bloat associated with Windows and Mac OS.
How would you deal with customers' corporate IT banning any non-certified OS from the network?
At work, we have a big TV screen showing an alert overview (a Grafana dashboard). A Raspberry Pi with Raspbian and Firefox would be enough to do that, but if we were to connect one to the LAN, its MAC would be blacklisted within less than a hour. (I've heard a report from a contractor plugging his own notebook into Ethernet, who had said cable ripped out by the local admin a few minutes later.) We ended up using an old notebook from one of our colleagues running Windows 7 Enterprise. Every few days, we have to RDP into it to click through app updates or restart the browser or something like that.
Nothing to wonder, it's easy to understand why they prefer to invest in 90% of the market, but they shoot themselves in the foot by investing in non-free platforms at the end of the day.
You're ignoring how they got to be 90% of the market. It is a comforting lie to say that it was all shady business practices and marketing, though those certainly played a role. Here's a clue:
"One of the things, none of the distributions have ever done right is application packaging ... making binaries for Linux desktop applications is a major fucking pain in the ass. You don't make binaries for Linux, you make binaries for Fedora 19, Fedora 20, maybe even RHEL5 from 10 years ago. You make binaries for Debian Stable…well actually no, you don't make binaries for Debian Stable because Debian Stable has libraries that are so old that anything built in the last century it doesn't work. …and this [“Don't Break Userspace!”] is like, a big deal for the kernel, and I put a lot of effort into explaining to all the developers that this is a really important thing, and then all of the distributions come in, and they screw it all up. Because they break binary compatibility left and right."
"they shoot themselves in the foot by investing in non-free platforms at the end of the day."
When is that end of the day? Over the last decades it would have been extremely difficult making money with Linux dekstop software. Windows and Mac were the only viable options to run a business.
...because Microsoft is good at marketing, has no ethics, and successfully leveraged its advantages in the 90s to kill all the competition? Is this a trick question?
Possibly, or maybe that's an excuse the community uses because they're unwilling to see how openly hostile they are to proprietary software on their platform.
Let me ask you a quick question: How can I distribute an application in a way that will work on all Linux Desktops?
A way to do that in a cross-distro way with (almost) no dependencies is via AppImage[1]. This creates a single executable that contains your application and all the necessary libraries and data files.
There is also work towards a more modular approach with Flatpak and Snaps, but those require support from the distro side. AppImage doesn't need any specific distro support.
And even AppImage, a solution I frequently praise mind you, doesn't always work right.
It's 2018 and the Linux Desktop still doesn't have a consistent way to... well do anything now that I think about it, but that you can't even reliably distribute an application is pretty insane.
Flatpak and Snaps are a typical Linux Desktop solution: Over-engineer the shit out of it.
AFAIK the only issue that could make AppImage to not work is lack of FUSE support, but any modern distribution should have that enabled.
Beyond that, AppImage is really just a container. It is still up to the developer to bundle the necessary dependencies (libraries, runtimes, VMs, data files, etc), but this is something they'd need to do with Windows too.
I have only ever used one, personally, but users of NixOS don't seem to be able to use them out of the box.
> It is still up to the developer to bundle the necessary dependencies (libraries, runtimes, VMs, data files, etc), but this is something they'd need to do with Windows too.
Only for libraries not present in the base system. Problem with Linux Desktop world is that they seem to actively loathe the concept of a consistent base system.
That KB entry is misleading: Steam works on most distros (at least all the ones that I've tried) because it includes its own runtime (glibc etc.) and thus avoids most of the idiosyncrasies of distros.
AppImage/Flatpak/Snap/Docker is mostly the same idea, just executed differently.
Yeah, it speaks volumes that the best way to ensure applications work on your platform is for the dev to bundle their own version of the platform in a container with the application.
...those are called folders. DOS applications worked that way. Only UNIX people seem to think that not hardcoding all your paths is some kind of special voodoo.
Oh, you meant that they package the libraries with the application? Yeah. If it isn't part of the base system, they do. That's how it should work or you get DLL hell.
Problem with Linux Desktop is if you put any two of its community in a room you'd have 4 different incompatible base systems within a week.
Linux users expect not to be locked-in and controlled. Perhaps if vendors tried different revenue models, such as sponsoring new features or charging for support/bug fixes. Over the last few years I have spent several hundred dollars in donations to free (libre) software. We are not all cheapskates :)
Hardly anyone can live from donations or bounties.
Try to get a mortage, pay a monthly rent, pay the kids school,.... just with donations.
One needs a regular source of income.
Desktop users are usually not keen to pay for consulting, trainigs or documentation. Rather just paying once.
Vendors that have pushed for web solutions get a constant revenue, but that solution makes the desktop irrelevant thus regular users see no benefit in running e.g. Chrome in other OS that wasn't already installed on the hardware that they bought.
Additionally such hardware is as proprietary as it ever was, even if built with a FOSS stack, as no one gets the sauce running on the server.