Linux didn’t “pop out of the woodwork”, it was the alignment of the stars of a good open source kernel with the already mature GNU toolset. And frankly, Linux has hardly made a dent in Windows as a desktop OS, despite years of it being “ready for the desktop, for real this time!”. (The Mac has, however, made significant inroads over the past decade.) So whether it’s even truly a competitor is debatable IMHO.
It's not; and, as far as I can tell, never will be. Over the weekend, I decided to dedicate a day or two puttering around with an old laptop I have that dual-boots into Debian, 9 Stretch I think. Some casual observations:
- There's a lot of gibberish scrolling by during startup. Am I supposed to be reading this? I see occasional warnings, missing stuff, etc. If there's a problem, how would I diagnose it?
- This thing hasn't booted in forever, I'm sure it's in need of updates. Hmm, nothing seems to be going automatically though. And I don't see a "update OS" button in the settings manager, or whatever I can tell are the nearest equivalents of that. Matter of fact, I don't see an "update" on ANY application at all. How, uh... just how secure is this supposed to be if there's no updates for anything, ever, anywhere..?
- I'd like to do some simple embedded dev on this thing. Okay, so I need my toolchain. Code::Blocks is cross platform, no problem there. I guess it's not available via package manager, so download it.
- The files don't... "run". They're just .deb archives. What do?
- Okay, so almost everything pipes through apt-get, or similar package managers. Oh also dpkg is what runs the .deb's. Surely -- surely -- there would be a simple GUI wrapper for these, that's obviously titled, and prominently placed on the system menu? I guess there's reason why xterm is prominently placed, but... c'mon... seriously? Fuck is the point of booting up X if I have to memorize every magic incantation anyway?
And none of which are discoverable or obvious, so it's all searching for what to do. Maybe there's
mans on the HDD already, I don't know. For sure, no one suggests looking at them. Google is the holy oracle of all. Good thing the Wifi connection "Just Works".
Discoverability is such a manifestly important goal of UX. There isn't a single video game in the top 100 that doesn't do this. Lead the player/user into what they need, or are most likely to need. And automate all the piddling work for them. (Or don't, depending on what kind of game it is; but generally, users aren't coming to an OS to play gnuClicker or whatever the equivalent would be.)
So I run some apt-get updates, upgrades, start getting some things installed that I need. We're like 6 hours in at this point. Having trouble locating python. I want version 3.8 specifically, so I know it's compatible with the toolchain on my desktop. Nope, doesn't exist, it thinks I mean some postgresql bullshit. Nearest I can tell, the default distro does not offer specific versions. I find it on another one (a quick search turns up dozens of sources). I enter it by name, no good. It does suggest adding servers to my sources.list. Seems straightforward enough, sudo a text editor, paste it in and go.
Also, all along the way there's confusion about dependencies. Because why would anything be easy. Apparently you have to --fix-missing and such, and also there's a -R to install a bunch of packages in a directory in the right order.
Anyway, I finally find python and get it installing. Text box (
less). Some deep sounding (libc6) package has a critical security update so it won't install it for me. Or the new version is incompatible with what else I have on here. Fine? Q out, process finishes. Fine, I'll just get a new version of that I guess. Hey, why isn't sudo working anymore? Why isn't... anything working anymore? Reboot, maybe it's just gotten confused. Linux is supposed to be famous for changing out whole kernel modules at run time, I don't know why this should help, but y'know, computers? Hmm, X isn't even coming up. It blinks a bunch then gives up and stops. Rebooting into the "advanced" and "recovery" options doesn't make a difference. Look up how to get a console. Won't even login with any usernames I know. Did... did apt-get just fucking brick the whole goddamned computer?
So I booted into Win10 the next day, and in the span of a couple hours, got most everything installed, including Code::Blocks running avr-gcc on a successful build of a recent project. Still a slow and bothersome process, but most of it Just Works(TM). No package hell, Installer just does the one complete configuration it's made for. Or just dump it in some folder somewhere and run it, who cares. Most of all, the OS doesn't let me, just, you know, fucking delete system32, as they say.
So, all this just to explain:
Even for a user who has general knowledge about computer systems,
Linux is still a piece of shit.
I'm not asking for advice; I know what I'd need to do to fix that. Maybe it can be fixed from Windows, maybe run an installer, maybe flash a USB bootdisk. I don't know how much that's going to wipe, if it can patch whatever fucked up in the kernel, or if I have to go through all that torture again just to get back to where I was. I know I can look up a hundred different resources to figure that out. Which is part of the problem by the way -- there's as many configurations as there are PCs running the stuff. The
paradox of choice. It's a very real UX problem, this time also with very real development costs. And with liability for the user of potentially destroying their computer.
Venting? Sure. Asking for sympathy? I mean, I wouldn't mind. Asking for solutions? I don't care. But that's really the root of the problem: developers write Linux for developers. They expect all their users to know all the magic incantations, to have an internet connection always handy to search things they don't, and to just debug or recompile the kernel if anything should go wrong. What could be easier!
It's -- it's the marketplace of ideas. It's free software. Free ideas. Some people like to make a big deal about "the marketplace of ideas", but what they conveniently leave off -- or ignore with a spiritual conviction as the case may be -- ideas aren't worth anything. In the legal sense, this is, well,
patently true: you can't patent an idea. An implementation, an invention, something physical, sure. (Well, that's rather wishy-washy these days, between relaxed rules, less review than ever, and including more and more junk like software patents. But, the core idea at least, of the PTO, and actual practice in recent history.) So too it goes, free software is worth all the bits it's written on. Free software only attains any value when it has, not just a little buy-in from users, but a truly stupendous user base -- popular projects like Firefox and Chromium are commonly touted as examples, ignoring the fact that real money supports those projects (Chromium especially, for obvious reason), and ignoring the literal millions of side projects that various users have spun off from projects big and small, as well as created themselves. None of which you can get your hopes up about; they should be treated as only what they are: pet projects, by and for, one or a few users, with no intent of fitness-for-purpose, merchantability, support, etc. Quite literally, you get what you paid for.
So you'll excuse me if I complain of a little cognitive dissonance, when I see optimistic claims about things people don't even realize they're extraordinarily biased towards.
Tim