As I sat down to do something unrelated this morning, I came across an article on one of the 'news' aggregators that I follow that reminded me that Linux turns 28 years old today1. The 'discussion' brings out the Usual Suspects™ using the Usual Talking Points™, some of which have been refuted time and time again by the True Believers™. Seriously, the same discussion has taken place every time Linux has made it into the news for the last two decades or so. I'm not being reductive here, literally the exact same discussion happens every time Linux comes up on non-Linux websites, as if everyone who has an opinion on the matter reached a conclusion in 1999 and stubbornly stayed there no matter what2.
I'm not here to change anyone's mind on the matter3, but I wanted to go over the arguments from both sides4 to hopefully explain things a little bit.
"<operating_system> is too hard to use." -- Literally Everyone
This usually comes up when Windows people are discussing Linux, but I've seen it go the other way, too. The thought on the Windows side is that Windows is easy, and Linux is difficult. Windows users will say that you have to drop to the command line to do anything in Linux, and typing things is hard. Linux users will say that there are some things that you will need to drop to the command line for, but most things can be done in the GUI if you have the right tool installed. The thing is, both sides are right, and both sides are wrong5.
Let's say you want to see all the files in a certain directory using a Graphical User Interface6. What's easier, opening Explorer and finding the folder that you want or opening (say) Thunar and finding the folder you want? Or, let's say that you want to use the Command Line Inteface7 do the same thing. Is there really that much difference in using dir
instead of ls
? We'll dive into the Command Line argument a little bit further on, but the point is that Windows only seems easy to use if you already know how Windows works. There's not much that's intuitive about it.
It's kind of like arguing that English is easier to use than, say, Japanese, because you've been using English as your primary language for your whole life and it's easy. This, of course, discounts the years that you spent learning the language and the practice that you do every day that makes English seem like it's easy now. Then you try out Japanese because you keep hearing all these good things about it: it doesn't have as many exceptions, things are laid out in a more logical way, and so on. So you buy a book, you look it over, and you try to speak Japanese for a couple of days, and realize that it's really different: verbs and nouns aren't in the same places, you have particles that you have to insert into certain places to mark different parts of speech, the characters are completely different and they might be pronounced different ways depending on which other characters are nearby, you have different levels of politeness depending on lots of factors that are nearly opaque to someone who hasn't studied up on it, and so on.
The point is: nobody is born with an innate knowledge of how to use a computer. Some things can be intuited, yes, but most things need to be taught, either by direct instruction or by reading the documents8, and if you think that any computer operating system is easier to use than another, then you've forgotten the hours and hours you spent learning the ins and outs of making your computer do the things you make your computer do.
"Linux is confusing because nothing about it is consistent" -- Strawman #243
This is is a deceptively deep point that is going to take a while to unravel9, but it actually dovetails into another issue.
"Linux is all about choice" -- Linux Evangelist #8923
There is an old saw where people are correct the notion of 'Linux' with 'GNU/Linux' because the latter is more correct10, but it comes from a long misunderstanding that has persisted. Namely, that 'Linux' is not an operating system. 'Linux' is a kernel, and is the heart of the operating system, but it is not in and of itself an operating system. I never really could find a good explanation about why that distinction matters, but now that I have some experience under my belt, I'll try to make it clearer for people who are in the same boat that I was for a long time.
Windows, like DOS before it, is a product, built by a corporation. It's a bunch of pieces of software, all made by one company to handle the basic operation of your computer. It is responsible for things like running programs, scheduling tasks, and managing your hardware. Microsoft also throws in some basic utilities that they think might be useful, like a basic text editor, a calculator, a web browser, an email client, a paint program, and so on. You're responsible for installing other programs to do things, but the basic stuff is already taken care of for you.
When you download 'Linux', though, you're downloading a distribution of software. 'Linux', the kernel, is just the first building block of the operating system. You also need some of the things I mentioned above for Windows: you need a way to manage programs, you need a way to schedule tasks, you need a way to install software, you need a way to configure said software. Most people don't have the time or inclination to figure out how to do all of that, so they rely on someone else to make those kinds of decisions for them. Red Hat takes the Linux kernel, adds in the basic programs and utilities to do those things in the way it thinks is best, and distributes it as Fedora Linux. Debian might think that different bits and pieces might be better for some reason, so they start with the same Linux kernel and they add whatever programs and utilities that they think will work best. Arch does the same thing. Nearly every distribution does the same thing. They start with the same 'Linux' base, and then they add bits and pieces from a lot of different sources to make a complete operating system that does the thing that they want it to do. That leverages one of Linux's most powerful and most confusing feature: choice.
Linux is all about choice. Most non-tech people will never make a choice other than the default that their operating system comes with11,12. It's kind of like how you can choose your web browser: do you want Internet Explorer, Chrome, Firefox, Safari, or something else? And, in Windows-Land, that's about all the choices I see people make. For anything else, they just accept one option for some reason. Do you want to edit video? Buy Premiere. Do you want to edit photos? Photoshop. Do you want to write a document of some kind? Use Word. Do you want to check your email? Outlook13. Do you want to change the look and feel of your desktop? Well, you can change some colors and your wallpaper and that's about it.
Linux, though, has a billion programs to do any task you might want to do. How do you want your desktop to look and feel? You have the choice of Gnome, KDE, Cinnamon, i3, MATE, Pantheon, FVWM, TWM, CDE, WindowMaker, XFCE, ROX Desktop, ICEWM, and a thousand more I won't bother listing here. Do you want to write a document? You can use Abiword, LibreOffice, WPS Office, or one of a bunch of others. Which graphical file manager do you want to use? Do you want to use a graphical file manager at all? Do you want to use a terminal? Which one? What do you want to use to play videos and music? And on and on and on.
The thing is, though, that you don't have to make any of those decisions. The distribution maintainer has already made those decisions for you when they created the distribution. Once you get the lay of the land, so to speak, then you can substitute out most of the software that the distribution maintainer included for the software you want, if you want. However, that leads to another problem:
"I can't get <name_of_Windows_application> to work on Linux" -- Random user 89709
I can kind of understand this if it's coming from a non-technical person. They have a computer. They bought a program for their computer. I.e. the program should work on their computer always and forever. They get Linux installed somehow, and it won't run Word, and they can't understand why. Linux is terrible because it can't do something like running Word or Outlook or whatever. To a technical person, that sounds silly. It would be like complaining that you bought an Xbox One, but all of your Playstation 4 games won't run on it, which is something that non technical people can understand pretty easily, but when it comes to something like a computer's operating system, they're lost.
But technical people should know better, and they generally do, but they fall into a slightly-related, but different trap.
"I can't use Linux because <Windows_application> doesn't work on it. -- Allegedly technical user #8675309
A lot of technical people pride themselves on being self-taught. They are constantly learning new skills to keep up with the rapid pace of technology development... except they despise change and fight tooth and nail to avoid change. It's this really weird dichotomy where they want everything on their computers to stay the same forever because they've learned to use certain tools in certain ways and they will not change for you or for anyone, but they develop new versions of software that they expect users to swallow and use because it's good for them. Things are better, more efficient, more aesthetically pleasing, and so on. The end users raise all the same objections, that they've grown accustomed to the programs the way they are and don't see why we need to change them, but the technical users insist that it's for their own good.
Both sets of users have a strange aversion to learning anything new when it comes to computers. They learn it once, they form their preferences once, and, from then on, they're set in stone and will not change. So, when a technical person says that they absolutely, positively, can not work in Linux because it won't run some Windows application or another, then I have to seriously consider the technical chops of the person making the claim, because for just about everything you want to do with a computer can be done with any operating system you want, as long as the things you want to do are sufficiently generic like 'edit a picture' and not ridiculously specific like 'edit a picture using Adobe CC 2019.6'..
To be fair, though, there are lots of applications that aren't available for anything but Windows for a variety of reasons, and a lot of those applications are required for the user to do the work that their employer pays them to do. I have a lot of domain-specific programs that are available for Windows only at my Real Job™ that I have to use and support, so using anything but Windows in that environment is a non-starter. That doesn't mean that Windows is better. It just means that it's mandatory in those situations.
"<operating_system> is better because <reason> -- Also Literally Everyone
Here's the thing. I get it, people are naturally tribal, and tend to self-select into groups, and then they decide that their group is superior to the other group for any number of reasons that I won't bother getting into here. You see it all over the place: your sports team vs. someone else's sports team, your political party vs. someone else's political party, Chicago-style pizza place vs. New York-style pizza, boxers vs. briefs, and on and on and on. You join whatever team you want for whatever reason you want, and then you any criticism of Your Thing™ as a personal attack on you, and you argue about it. Or you argue about how your team is better, or how the other team is bad, and the discussion goes nowhere14. Each side is convinced that they can get their opponents to switch sides if they can just explain it a little bit more. They if they can be made to see the light that they would switch to the obviously correct side, when, in fact, generally, there is no correct side.
"All I did was ask a question, and I got yelled at. Linux people are so rude!" -- Windows User Who Is Trying Linux, But Is Usually Talking To Volunteers Like They're Paid Support and/or Refuses To Do What Is Necessary
This is a thorny issue, and I'm going to gloss over some of the little details so we don't make an already too-long article any longer than it needs to be. But, for some reason, one Linux user represents all Linux users, especially if someone had a bad time interacting with one. Consider the following scenarios:
- A proto-Linux user has heard all of these great things about Linux and installs it on some old piece of junk computer that's been laying around for ten years because it's too slow to run any version of Windows past Windows XP. They install a linux distribution intended for modern computers and performance is awful. They post in the forums for their distribution, and are told as such. Conclusion: Linux is bad and its users are rude.
- A proto-Linux user installs Linux on a sufficiently-powerful computer, only to find that some of the hardware doesn't work. Probably a wireless adapter or a graphics card. They go into the distribution's IRC channel and ask how they can make it work. They are informed that no drivers exist, and it's likely that no drivers will exist unless the manufacturer writes one or the user does. Conclusion: Linux is bad and its users are rude.
- A proto-Linux user successfully installs Linux (or has someone install it on thier computer), and they have a perfectly reasonable beginner-level question about something. They go to the forums and ask the question, and the forum regulars recognize that the question has been asked and answered dozens of times, so they suggest the user search the forums for the answer. The user replies that they don't want to search for some reason, they just want their question answered. The forum regulars reply that the question is already answered if the user would just take the time to look for it. Tensions escalate. Conclusion: Linux is bad and its users are rude.
- And so on
Now, take any of those above scenarios and replace 'Linux' with 'Windows'. Does the conclusion still follow that the operating system is bad and its users are rude? Or is it an issue of the member of one team trying to extend an olive branch to the other team, fouling up the handoff, and then getting angry at the other team for being upset? The Linux team usually expects that its members be relatively self-sufficient and be more willing to put in a little more legwork to find answers and solve problems. But, if you don't know that, you're going to step on some toes and ruffle a few feathers.
It would be kind of like if you were invited to a dinner in a foreign land, but you didn't know any of the local customs and you don't know what you're supposed to to. You ask around and the locals say that you really should have read up on this before you got to the dinner, because there are lots of books on how this works, but you get mad because you've eaten dinner thousands of times, and it's always worked okay, and you just want to know which item is the fork so you can eat your food. Only, you find out that there is no fork, but they have a krof, which is kind of the same, but a little bit different. You end up asking everyone how and when to use your krof, and they refer you to the krof guide you really should have read, and also to the other guests at the dinner to see how they are using their krofs, but you dig your heels in and demand that the tell you instead of you trying to figure it out on your own. Everyone gets angry. They get angry at you because you refuse to do the bare minimum required to be a good guest, and you get angry at them because they refuse to hold your hand and walk you through every step of the way.
There are a few more talking points that get bandied about, but these are most of the big ones. See how many you can spot in your next Linux vs. Windows, or This is The Year of the Linux Desktop, or I Need To Hit A Quota For Media (articles, videos, whatever) This Month, So Here's A Fluff Article Mentioning Linux, or whatever.
Or better yet, don't. Save yourself the time and energy and just avoid the comments altogether. I can guarantee that no new ground will be broken15