I run Arch and I definitely run into a few things from time to time where I need to go on a google hunt to figure out what's wrong (if it's not already obvious), but the distro is pretty user friendly (despite the 'hard core' reputation it has which honestly drew me to it). Ubuntu just about works right out of the box 99% of the time these days.
Also what is IVI? this: https://www.ni.com/ivi/what.htm ?
Now KDE does provide compatible themes for GTK, but the fragmentation in GTK (2 vs 3) does not help. The solutions are at best a stopgap measure till the next major version breaks what you managed to get right. It's a never ending game of whack-a-mole. It does not help some of the most popular apps are written in GTK. As I speak due to reasons I haven't investigated yet, I am unable to paste text contents in GTK apps. Windows has other points I take issue with, but at least the UI just works as expected and doesn't seem to hang by a thread.
- XFCE
- BSPWM (very minimal, lots of set up, and not great documentation, but I manage windows for the most part without leaving my homerow now, so I love it. once you're past). If you're not one for keyboard shortcuts and muscle memory, it may not be interesting, but I run bspwm and love it.
Point taken on the GTK pain, it was so painful that I stopped using it (I used to run linux mint, and cinnamon/mate, Gnome, were also thorns in my side), and wince every time something I want to install has dependencies on GTK (just because it pulls in 10098123 other packages every time).
Less portable: both major projects (Gnome and KDE) are increasingly depending on Linux-specific technologies (mainly through systemd dependencies, e.g. timedated, localed, hostnamed and logind, which are explicitly Linux-specific). They can be replaced by shims, fortunately, but these are difficult to write, because the components that they replace move quickly, often not very transparently, and without much documentation.
Worse: frankly, what I dislike most is the frequent rewrites of major components, which keeps everything in a perpetual almost-stable state. I can get my Plasma box to act up just by trying several window decorations one after another in System Settings.
But there are a lot of things that recent Linux converts don't realize about their major pain points. For instance, until a few years ago, getting uniform looks between GTK, KDE and Qt applications was largely a solved problem, thanks to e.g. projects like QtCurve (there were several other solutions, QtCurve was just the one I liked most). Good luck with that today (see e.g. https://github.com/QtCurve/qtcurve-gtk3)
Basically, except for Bluetooth and proprietary graphics driver, there's nothing that "almost works" today which didn't "almost work" ten years ago, either, except it probably got rewritten at least once.
> Also what is IVI? this: https://www.ni.com/ivi/what.htm ?
Nope, it's short for In-Vehicle Infotainment systems. It's one of the very lucrative markets for Linux solutions, because the competing solutions are either tied to a specific big player's interest (Android) or super expensive (QNX). Video entertainment in general (IVI, smart TVs etc.) is the main force that drives graphics and UI-related development in Linux.
It's not a bad thing (quite the opposite, I certainly don't miss using VESA drivers...). But it does mean that, for the people doing work on major components of the graphics infrastructure, desktops aren't a priority. It needs real community effort in order to be turned into a viable desktop option, and that's pretty hard considering the rate at which developers are being driven away.
Yeah, turns out POSIX is no longer enough. I am all for operating systems using the best technology stack they've got. Nor Windows, macOS or BSDs get hate for doing the same, so why should Linux not be able to fully embrace its own solutions to make itself more competitive?
People always complain about this and that not being on par with Windows or macOS - well, in order to get there, you'll have to take full advantage of whatever APIs you can, even forgoing POSIX in some instances.
You can get the best experience using the most up-to-date APIs available on your platform or the most compatible, lowest common denominator experience, but you can't get both.
> Basically, except for Bluetooth and proprietary graphics driver, there's nothing that "almost works"
True that, it tends to "just work", on reasonably standard hardware, like the latest Dell XPS 15, practically everything 'just works', even on a 2015 retina MacBook Pro, my experience has been near flawless.
Thank God the guys who write the kernel never thought about this :-)
Besides, this isn't what I was criticizing. What I wrote (it often helps to read the whole argument before offering a counterpoint) is:
> Both major projects (Gnome and KDE) are increasingly depending on Linux-specific technologies (mainly through systemd dependencies, e.g. timedated, localed, hostnamed and logind, which are explicitly Linux-specific). They can be replaced by shims, fortunately, but these are difficult to write, because the components that they replace move quickly, often not very transparently, and without much documentation.
Windows, MacOS and (at least Open)BSD don't get all this hate because they tend to introduce components when they're reasonably stable and almost always with full, proper documentation. They rarely dump beta-quality code for the community to test and document, like Red Hat did with pretty much every desktop technology they developed after 2005 or so.
Sorry, I tried, but can't see what you're arguing here, since the discussion was about user space, not the kernel.
> They rarely dump beta-quality code for the community to test and document
Huh, Microsoft has a loong history of updates breaking things, (even permanently) and they recently fired practically all their testers to let the users test their updates.
Mac OS 10.7 was a broken mess and the latest Sierra broke cURL.
Besides, that is the trade off of developing in the open, you get to see not only the good stuff, but all the quirks on the way there too, you must personally decide if it's a trade-of worth making.
Now, for all that I like Qt, I've never gotten into KDE because I can't run it without it crashing all the time. And Gnome is a great UI for my pre-literate children, but it's not for me. But the fact that mainstream desktop environments are a bad fit for me doesn't mean I'm having a bad time running Linux on my desktop! My window manager does exactly the things I want it to, and not one thing more. Linux crashes for me less often than Windows, and unlike Windows I can almost always ssh in and put things in order before I reboot. (In the course of developing a GUI application, there are lots of ways to create system instability!) I can't imagine, as a developer, preferring a watered-down Linux running on the Windows kernel to the real thing. It's like saying that Wine is Windows. (Not that Wine is a bad project, just that it's not a great way to have the Windows desktop experience.)
Ease of use also depends on the distro you choose. Ubuntu or Mint will probably be the easiest; if you install Arch, you should know what you're in for. (Before you jump on me, I posted this from a system running Arch.)
The driver situation has massively improved, absolutely. The second time I installed Linux (on a brand new computer) was scariest -- S-ATA was super cool and new and my S-ATA controller wasn't supported, so I had to build a patched kernel on my old machine and boot with it...
But higher-up, I don't think we've progressed significantly past where we were in 2010. Sound still breaks (and ironically enough, it had just started breaking, with Alsa finally getting proper soft mixing and hotplug support via udev), KDE and GTK applications can no longer get uniform themes, display managers still get laughable bugs...
the DE end had crapified (it may by shiny crap, but still crap), and the crap is seeping towards the kernel year by year.
The day Torvalds is no longer present to hold the kernel devs to the rule of not breaking userspace is the day Linux goes down the drain.
"I mean, the privacy is shit, but you can sort of deal with it. But at least you don't have to dance the Ritual Dance of PulseAudio if you need to do MIDI (or get as much as a hiss out of your speakers), suspending your computer doesn't garble your desktop background or desktop icon labels, you can update Windows Go 16 and it'll work after you reboot..."
I don't like Microsoft any more than I like any company of its size, but they're making a compelling case, while the Linux "community" is busy supporting cloud, IVI, and IoT vaporware.
Edit: ten years ago I was certain they were going to pry Debian and OpenBSD from my cold, dead hands. But Windows, for all its privacy compromises, is working better and better, whereas Linux desktops are getting worse (and less portable), with a never-fulfilling promise that it's going to get a lot better when they finally get stable, this massive rewrite that we started like six years ago is just about done...
Edit edit: I know my comment looks overly negative and I seem grumpy but really, I'm not, I like Linux, I make a living out of writing Linux software and I've used it one way or another for almost twenty years. That being said:
1. Please stop recommending me that I use something more user friendly, like Mint or Ubuntu. "You can update to Windows Go 16 and it'll work after you reboot" was a joke about Ubuntu.
2. This "I got this new machine and it works flawlessly out of the box, Linux is great if you get good hardware" is the wrong mentality if you're not Apple. Every operating system, including TempleOS, runs flawlessly out of the box on some hardware. It's getting it to run flawlessly on hardware other than the developers' machines that's complicated. Go ahead, grab ten high-end laptops at random and see how well plugging and unplugging your monitor works, even on systems that are officially supported. How do you think I ended up knowing xrandr's command line options better than I know tar's?
Not being able to care for my Linux box is not my problem, my problem is that I don't want to care for my Linux box. I babysit Linux at least eight hours a day at work. I don't want to have to do it at home, too.