>Every time Linux on the desktop is discussed, the reaction of the Linux desktop community is predictable: defending Linux and its problems, and downplaying the difficulty that many users have. A ton of people say "it works for me on my hardware" or "I didn't need to compile any drivers" or "the games that I want to play work fine". In fact, this comment thread has good examples of this type of reaction. So what? Until it works for everyone it's just not good enough.
I'm a bit confused; have you actually had this experience when you had to compile your sound card driver in the past ten years? It would be totally reasonable for you to be unhappy if you had, but given how much you're criticizing, I have to assume that if you had this experience you would have mentioned it. Given that, it sounds like the only criticism is that someone could theoretically happen to need to do this, but that's not really any different from any other operating system; the difference is that if your sound card doesn't work on Windows, you don't have the option to compile it at all. I'm not sure how often people have driver issues on Windows these days, having not used it much since before I swapped to Linux, but I'm not going to prematurely get angry about the idea that people _could_ be having driver issues but not have the option to compile their own if I don't actually hear about anyone having these issues.
> Until it works for everyone it's just not good enough.
You are pretty well proving the GP point. There is no system that works for everyone. Windows can be very challenging to get up and running on hardware setups that are not the most common.
> Windows and MacOS don't make people do that
False. And it's funny that this is about sound drivers. I have a piece of older but perfectly working Roland audio/MIDI equipment that uses USB drivers that are no longer supported on modern MacOS. How did I get it working? By compiling a fucking driver the other day. (And yes it works perfectly out of the box on any Linux kernel for the past 20 years).
Now go ahead and move the goalposts about older hardware not mattering or some nonsense. This hasn't been the only frustration with MacOS. It took these clowns the better part of a year to fix VLAN configuration in the network setup window. The only way to configure them for a lot of hardware was to drop down to the command line - so much for working for everyone.
I don't even have to look outside the circle of people I know in person to have seen this. Googling for Windows not working with $X specific laptop instantly reveals quite a treasure trove beyond the people I know, where $X can be pretty much any Windows laptop. Everything from fingerprint readers no longer working to even simple things like the function key hotkeys no longer working.
Issues with sound drivers not working are far from unheard of on Windows laptops.
You definitely seem to have missed their point, and, in my opinion, you're being unnecessarily antagonistic.
I don't mind building my own drivers (in fact I maintain one[1]), but I would never expect the average person to have to do that. It would be entirely unreasonable.
But, the vast majority of linux users don't have to compile any drivers. Unless you have some obscure piece of hardware or one that is so new that the driver isn't mainlined yet, you don't have to worry about it.
You say you've been using linux for 20 years. which driver(s) in the last 5 or so years have you had to compile yourself?
This is absolutely not something one can say about windows (though at least nowadays it will try to fetch drivers from God knows where and often succeed). And Mac supports like 2 hardware devices all together, both of them manufactured by them — comparing an OS that exclusively run on specific hardware is just stupid and not made in good faith.
And of course, you're under no obligation to listen to any of us whine, but if, on the off chance, you happen to want more people to like Linux, it seems like taking people's experiences seriously would be a good starting point.
May I ask you what hardware did you install linux on?
In case you don't think virtualization is a valid use case, this should hold true for any drivers distributed outside the kernel. It's also true for newer hardware - WiFi 6 has been a thing lately. And over the past couple years as laptops try to compete with Apple there have in fact been sound issues, though that one hasn't bit me personally.
Again, I want to stress that I'm not imputing some moral obligation for things to be different. But it is definitely a rough edge, it absolutely requires people to futz with compiling drivers, and it's something that makes some number of technical people say "screw it, this is too much of a pain in the neck."
In my opinion, investing in a proper driver architecture with a stable interface would be a massive step toward better Linux hardware support and broader adoption.
I don't think that's a fair comparison. Parallels comes with dkms module and while the process of installing involves compiling under the covers, it's just part of installation. It's not the late 90s "compile that driver yourself completely manually" situation.
If Parallels doesn't work with new kernel, that's their compatibility issue, but being able to fix the driver yourself just gives you more options. Linux -> you can fix the driver. MacOS -> you can on new macos, with annoying extra signing and other steps. (if the source for macos is even published - for parallels that's a no) Windows -> basically wait until the vendor produces an upgrade.
Parallels says for macos 12: "Productivity and integration features are not available to this VM yet." Even if you wanted to fix it manually - you can't. (https://kb.parallels.com/au/125561/)
Basically, you get the extra option to upgrade faster than your vendor is ready on Linux - if you use that path, why show it as "I had to do manual work to make things work", rather than something positive?
Both approaches have their upsides, but I've very rarely had drivers stop working between various windows release. Of course, there are exceptions to the rule here - Yes, I also have had some drivers stop working since Windows XP. But those are rare, and getting rarer as time goes on and MS locks the kernel up, preventing drivers from doing stupid things.
On Linux, the problem only exists for out-of-tree drivers, but those will break fairly frequently for all but the simplest drivers.
As I said in my sibling comment, I don't know how I feel about a stable ABI - I do fear it would make the situation worse with more out-of-tree/proprietary drivers. But it is worth keeping in mind that it does have its upsides.
Of course, MacOS being what it is, it chose the "worst of all worlds" scenario: Proprietary drivers with no ABI stability guarantee. It's not really worth discussing as a point of comparison, MacOS has the worst driver story from the lot, only saved by its intended minimal target hw support.
I don't understand. Do you think I'm lying or something? Because I'm not, and neither are these folks:
https://www.google.com/search?q=compile+new+kernel+site%3Afo...
It's a giant pain in the neck and it's caused by pretty deliberate decisions about Linux architecture.
> In my opinion, investing in a proper driver architecture with a stable interface would be a massive step toward better Linux hardware support and broader adoption.
Eh, I have mixed feelings about this. Part of what makes Linux so great is that most of its drivers are open source - which allows the devices it supports to stay supported basically forever (though bitrot certainly is a thing). And they achieved this by making maintaining out-of-tree drivers so damn painful.
A stable interface would sort of undermine this. I honestly don't know if that'd be preferable to the status quo.
That would encourage open-source or at least source-available drivers (to allow recompiling for ABI changes), but recompilation should be straightforward and possibly automatic if the API doesn't change every couple months.
You could apply the same fix to a Linux computer and purchase known working hardware, but because you have the option of fixing the software yourself that makes it a worse operating system?
Granted, as someone who's been using Linux sporadically in various ways for the same two decades I've been a Mac-on-the-desktop user, I can't remember the last time I was left rending my shirt and wailing "if only I didn't have to compile an open source driver for [insert thing] to get basic functionality working." (Although I can remember more than one time I ran desktop Linux in a VM on a Mac, and spent several hours doing web searches for how to get [insert thing] working to find little more than other posts saying "I'm running desktop linux on a VM on a Mac and I can't get [thing] working".)
How this translates is by Apple officially dropping support for your whole computer. I guess you consider getting trapped on an old OS that stops getting security updates and becomes incompatibility with the latest applications to be superior to the situation on Linux. I do not.
Or, as others have pointed out, having to upgrade perfectly good hardware because the OS no longer supports it. That has happened to me on both Mac and Windows.
Honestly, better hardware support is one of the reasons that I have started using Linux more and more than proprietary options.
I actually really like Windows 10 but I have had way more hardware issues with it on my primary laptop. I had odd performance problems with it sometimes and the mouse pointer would lock up frequently ( Windows factory installed ). I put Windows 11 on this computer ( new enough hardware to meet all the Windows 11 asks ) hoping it would improve things. It was a disaster. My Bluetooth headphones rarely worked. Plugging wired headphones into the port would not silence the speakers. Blue screen of death ( have not see that in years - looks much friendlier now ) all the time which you know is a driver problem. Anyway, I have since out Linux on it and all my hardware woes are in the past. As I said, I actually really like Windows but it is a relief to get it off this machine.
They don't make people compile their own drivers because their respective corporations spend some good money to pay their developers to work on company provided hardware, or harware manufacturers to make their drivers first, and sometimes only their drivers. Linux developers otoh are often forced to reverse engineer closed source drivers on hardware they purchased themselves, so Linux support usually comes later.
The upside is that nearly all Linux drivers are FOSS, which makes a huge difference as there's no such thing as planned obsolescence among FOSS. Never seen a perfectly good peripheral being supported by Windows until version x, so that you install Windows 10 and that card that worked fantastic under Windows 7 or 8 isn't supported anymore? No drivers, no party. Sometimes the price to pay for running an OS that doesn't allow you compile your drivers is the purchase of new hardware along with system upgrades; that represents one of the hidden costs of closed source software that should be stressed more often.
Edit: ...and btw, it's like 15 years I don't have to compile my kernels anymore. A couple things or so have changed since 1997.
Stop claiming Linux is hard to use because it takes effort to run it on unsupported hardware... like any other OS.
No system is good enough by that definition. I've got a set of devices which either require lots of extra work or just don't work on all of Linux (parts of Lenovo dock), Windows (phone over bluetooth, also can't do clean install), MacOS (usb-c audio interface). We got to the level of "most things just work" on all of them.
> "Typically" is not good enough. Windows and MacOS don't make people do that, and neither should Linux distros.
> A ton of people say "it works for me on my hardware" or "I didn't need to compile any drivers" or "the games that I want to play work fine". In fact, this comment thread has good examples of this type of reaction. So what? Until it works for everyone it's just not good enough.
I'm also someone who has run into problems with Linux, albeit with some slightly obscure hardware, as described in my comment here: https://news.ycombinator.com/item?id=29816615
The difference is probably that on Windows installing drivers is as easy as running an .exe or an .msi file, whereas on Linux the process can be more involved due to how different distros can be from one another, how the kernel versions might require different headers and how compilation of drivers might involve dropping down to the terminal which people sometimes forget isn't comfortable for people who don't necessarily use Linux in that capacity.
Wouldn't it be incredibly nice to have something like AppImage or Flatpak, but for drivers? Not the controversial distribution/update practices (though those criticisms are more about snap), but something that's as conceptually simple as clicking on an icon in a GUI somewhere to launch the installation and handle everything behind the scenes?
As for games, look at a recent video by Linus Tech Tips, "Gaming on Linux is NOT Ready... - Daily Driver Challenge Finale ": https://youtu.be/Rlg4K16ujFw
(Linus also demonstrated accidentally bricking his distro by not reading a terminal warning about problems with installing certain packages in the 1st video of the series, which is a really good example of some of the other problems in regards to usability)
There is a lot of progress, but also a lot of problems to solve.
I can only assume its hardware disparity. I never have much money so I always get older cheaper hardware I can afford, where support has most likely had time to mature. Perhaps people with these negative impressions of Linux are trying to install distros on newer, bleeding edge stuff?
One area where I am dramatically wrong about this is with regards to high performance video drivers though that is improving. Even there though, a distro like Manjaro will likely work perfectly out of the box. To get performance a gamer wants might require a fair bit more knowledge but that said gamers tend to spend quite a bit of time managing and tuning things even on Windows.
I also tried a Dell XPS, but there were some BIOS problems, the keyboard layout was awful (which is not a Linux problem), and Hibernate was spotty at best.
Bad keyboard layout was also a problem with the Entroware.
Hibernate works perfectly on my LaptopsForLinux model. :+1: I just wish there was a keyboard protector in case I spill coffee on it.
Maybe laptop nirvana will finally be reached with the Framework when it finally reaches these shores. [EDIT] It has arrived.
I have personally ported Linux to many devices the manufacturer never intended it to run on and I even have code in the kernel. I can generally make Linux run on anything by compiling a custom kernel or drivers with maybe a custom patch or two.
I love having that freedom but that freedom is too often confused as the default end user experience of someone that goes to a store and buys a computer that ships with Linux.
When comparing Linux vs Windows or MacOS for end users then talking about porting to unsupported hardware is silly. If you want to run MacOS on unsupported hardware it will take some hacking too.
I have helped hundreds move to Linux many of whom are elderly and non technical. I have them go buy a computer that ships with Linux and is supported so they never need to open a terminal and everything just works. Dell, System76, and Purism all have fantastic offerings here and I do not know of anyone who has switched back.
I've found numerous times Ubuntu just doesn't want to work. Ether Wifi or Bluetooth is broken.
Fedora seems to be a bit better, it's my daily driver on my old lightweight laptop. My big gaming PC runs Windows.
I make music and play games with it, no matter what the FOSS community wants to think , Linux doesn't come close in these aspects.
Each OS does different things well. Linux is very good for running on older hardware, or small computers like a PI.
Windows is exceptional at gaming and game development ( really any C# dev). Visual Studio is the greatest IDE ever made. If I had to write C# in note pad I'd give up coding.
Mac OS is best for creatives. Logic Pro is only 200$ , and easily replaces an entire studio. With Logic and a 300$ mic you can make something very nice. Your also forced to own a Mac if you want to make iPhone apps.
The music creation ecosystem on IOS is miles ahead of Android. It's at the point where I'm considering am iPhone in addition to my iPad for on the go music creation.
At the same time, as a phone, my Pixel 6 is everything I could ever want. Automatically letting me screen calls saved me hours per months.
I'll forever love Linux for giving a stable NodeJS dev environment when Windows wouldn't. Without desktop Linux I would of never been able to develop the apps which got me my first job. But you need to be open to hopping in the terminal.
As far as WiFi is concerned, I'm more likely than not to blame the crap connection on the access point. I've had great success replacing rubbish APs with something basic but good, but for work I want wires if at all reasonable.
Have you tried out Rider? https://www.jetbrains.com/rider/
It's one of the JetBrains commercial IDEs, but since i got the Ultimate package of their products for Java development and some other stuff, i also tried out Rider and found it to be pretty pleasant for everything from web development, to game development (with Unity in particular, though Godot also works obviously, as would other engines like Stride, or NeoAxis or whatever).
They have some pretty nice features for Unity, like giving you hints about methods which are slow and are used every tick, or maybe alternative methods that could be a better fit in some cases: https://www.jetbrains.com/lp/dotnet-unity/
Now, some people say that Rider's a bit sluggish like some other JetBrains products, but in my experience it's pretty close to Visual Studio (faster startup, slower when indexing project, faster for many code hints, slower for autocomplete), though maybe because of me enjoying messing around with the memory limits and usually increasing them slightly.
Nonetheless, for enterprise projects, i'd probably just continue using Visual Studio for consistency's sake. Heck, last i checked, Visual Studio even had plugins for supporting Python and other languages, which was interesting to behold. Apart from that, i'm not really aware of many other IDEs for .NET/C# out there, maybe MonoDevelop which is free, but also kind of abandoned: https://www.monodevelop.com/
Just figured that i'd mention JetBrains products in the first place, because they're my toolbox nowadays for which i reach whenever i want to do some development with the IDE helping me out regardless of whatever tech stack i'm dealing with (at least the common ones), so it has largely replaced Visual Studio for me. Though i still reach for Visual Studio Code for more rapid/lightweight editing of scripts, confguration files and such (or other text editors for when an IDE isn't necessary).
By the way: JetBrains is also working on a more lightwheight editor called Fleet which seems to be comparable with VS Code, at least visually. There's already a product page for that at https://www.jetbrains.com/fleet/
Visual Studio is going to be the best supported IDE for C#. I'm fine with having a Windows PC for that.
I still Dual boot on my old laptop
Admittedly, most of my complaints there would be about the different Android SDK versions and how sluggish and slow everything feels at times, as well as about how Android seems to have a stripped down JDK inside of it, which causes weirdness with certain libraries, as opposed to just having something like OpenJDK.
But hey, whatever works for you! I don't really think that there are that many (if any) alternatives for Android development, to be honest.
I'll agree Android dev is pretty frustrating, it's much better than it was just a few years ago, but it's still nowhere close to iOS. iOS users also tend to be much more willing to pay money, so there's that.
It excels at having a large plugin ecosystem, moreso than JetBrains products have (probably close to what Visual Studio Code has, just look at https://marketplace.eclipse.org/category/categories/programm...) and being a common base for a variety of other tools out there, due to its modular nature, but there are plenty of disadvantages to that approach (loose coupling that ends up being brittle and worse runtime performance come to mind) and the workspaces concept feels shoehorned on.
That said, some out there swear by it and admittedly the customized versions of it, like Spring Tool Suite (STS), provide a lot of value to them and numerous other people, so everyone should probably just use what fits their needs. For Android in particular, however, i haven't found an IDE that's as pleasant to use as for other languages. Oh well, high expectations be damned~
I legit quit a job since they wanted me to use Eclipse.
For the past several years I've been recycling Windows 7 and up laptops by giving them a second life with GNU/Linux, and everything Just Works most of the time, including sound, videocard, power management, etc. The only thing I've had occasionally not working is the volume and brightness buttons, but they work most of the time as well.
When my partner's Windows 8 laptop shit itself after an unconsentual upgrade, I installed Ubuntu on it, and it worked just fine out of the box, for years. This person is not a computer nerd by any means.
I'm not saying your experience is not valid, but it is the complete opposite of mine.
Separately:
> If you want normal people to use Linux you should never, ever, ever ask them to even use a terminal
What about Alexa or Siri? Would it be acceptable to ask them to use a voice-activated digital assistant to accomplish what people use the command-line for? What about a text-activated one, without the voice recognition problems?
I am not a big gamer on any platform. In fact, I was using my son’s Steam account. He uses Windows himself but I was running it on Linux. I only played a few titles but they all played pretty well given that it was on an older laptop. Steam itself installed from the standard Manjaro repository but I did have to compile a driver for the controller.
It's rational for me to want my sound card to work without having to compile code. No other operating system would make me compile code to fulfill such a rudimentary and basic expectation. That's not religion, that's usability.
I can't imagine trying to walk my parents through compiling a kernel driver to get their hardware working, and that's why I've never tried to get them to use Linux. If you want normal people to use Linux you should never, ever, ever ask them to even use a terminal, much less a compiler.
I've used Linux on the desktop, on and off, for over 20 years -- in fact, since the year 1999 as you mentioned. It still sucks. Every time I come back to it I have at least one driver problem. It's not ok, and it's not defensible. Instead of defending it and blaming critics for being "religious," admit that it has faults. Things only get better when we recognize the deficiencies and fix them, as Valve has been trying to do with Proton.