As someone who used (and continue to use) desktop Linux in some form since 2014, here are some arguments towards the newcomer against looking into Linux as an alternative to whatever you're using right now.
Most of my arguments are more towards the community side, rather than the tech, which I am sure some people will flame me for. But the community is something to consider. Particularly to newcomers, who will need to be a part of to get their questions answered, among other things.
This page is not actually meant to convince you to stay on your existing OS (although if it does, I don't blame you). It's meant to provoke discussion about these problems in Linux communities, which most seasoned Linux users will forget about (or never experience as they don't do anything other than coding) after they leave their "newcomer" phase.
(Hell, I might've forgotten about some problems. I've been using Linux for what, 7 years? Don't take everything I wrote as everything. I'm just a rando on the internet who occasionally lurks on newcomer-adjacent community places.)
I'd just like to interject for a moment, this isn't actually that big of a deal against Linux (although some pedantic people do exist and in my opinion are problems, just not as widespread as the other problems), and is mainly here to clarify some wording.
When I say Linux, I am not referring to the kernel Linux, but rather the operating system bundles that contain the Linux kernel, among other things. You might call these "Linux Distributions". I just shorten them to "Linux" because context and the redundancy of language means you can still know what the hell I am talking about.
(It's also not GNU/Linux, because Linux distributions without GNU code do exist, and they do get used on the desktop, even if not as widespread. Also, why does GNU get some sort of special treatment? Why can't it be, say, Freedesktop/Linux, when Freedesktop dictates far more of the experience of the average user who barely needs to open the terminal, and is still as widespread?)
Seriously, as long as we can understand each other, and we often can without clarifications like this, what's the point in trying to dictate language, a fluid "thing" that evolves with the people it's meant to help? Follow the natural evolution, don't try to dictate it. You will simply be ignored.
(Also, when I say Free (with a capital F), I'm not talking about the price, but the specific ideology behind "free as in freedom". This clarification is more for the newcomers in the audience if any)
A small but vocal minority of Linux users will prioritize the Free Software ideology, over functionality. While I do think the arguments in favor of Free Software are something to consider, they will obsess over it to a point, where they will throw away functionality to achieve it.
If they were to just do it among themselves, I wouldn't be writing this. The problem starts when they try to push other people to throw away functionality in exchange for using Free Software. Particularly, people who just can't use Free Software, for more than likely valid reasons.
Take Nvidia for example. Their hardware requires "non-Free" drivers to unlock full functionality and performance. Yes, they're dicks and we would all be better if they were to open them up, but that is not the reality we're living in. And as such, the community should help the people who want to use the hardware that they own, often purchased before they were unaware of Linux and Free Software, to the fullest extent (Pepper in anecdotes about how AMD works better, I don't care, as long as you actually help!).
If you don't, the newcomer will simply leave the community. They will more than likely go back to their previous setup (often Windows), where they will be able to use their hardware and software to the fullest extent.
Congratulations, in an attempt to make someone use more Free Software, you made them use even less. If the newcomer got the help they needed. They would be running a semi-Free kernel (don't forget the blobs!), Free "system" (the internal "stuff" that are not the user programs), and (mostly) Free programs. Compared to that, a non-Free driver, or a couple non-Free programs (maybe over Wine, which is also Free) should be an acceptable trade-off.
Certain software that you rely on, especially the non-Free ones, might not work under Linux.
If you were to ask the community, you might get a bunch of alternatives suggested to you. Unless the alternatives are Blender or Krita (along with a few more actually impressive Free software, and even then), there is a good chance that they will simply lack certain functionality that you might rely on.
Even if you specify which features you need for an alternative, you will always see the same software suggested. There is a very good chance that the person that suggested you said software has never used it, or use it so rarely that the inconveniences you will regularly face are not problems to them.
This problem can be combined with the ideology problem I mentioned above, where the vocal minority will, at the sight of non-Free software, dive into a completely unrelated conversation and suggest you a Free alternative. These kinds of conversations are especially prone to the "never used it, has no idea" problem I mentioned in the previous paragraph.
When you ask a question, or more likely, when you read a guide, there is
a good chance the writer doesn't know that they know certain things.
This ends up with them telling you to, say, "run
sudo make install
".
The thing is. Saying that implies a lot of things. To do what that instruction tells you, you need to know
make
is directory-specific and you should be on the
adjacent codebase's directory
#
prefixing the command means executing it as
root, whereas a $
prefixing it means executing it as a
regular user (but only if the guide you're using decides to include
it) and you're not supposed to include those characters in the
terminal command (if they happen to be included in your guide)
sudo
(except for the times where the guides put the sudo
for you) which actually turns the command into arguments for the
command named sudo that then execute those arguments as root after
checking your password (in some systems, certainly not any of the
newcomer desktop ones, sudo might not be available!)
make install
can be dangerous in that it can
conflict with your package manager (huh?) or be a complete hassle to
uninstall if the Makefile (what?) doesn't have an
uninstall
task (how do I know and how do I use it?)
make
is not exactly a good example for this, but consider
commands that are more complicated than that. Maybe ones that involve
file paths, interact with running background services, all that good
stuff. And don't get me started on curl|sh
Linux is, currently, not for everyone. It is for the tech-savvy (or someone that can afford to and willing to stop what they're doing and learn) person.
If all you want to do is shitpost on the internet, while Linux might have all the functionality you need, at some point, something will happen and you will need tech knowledge to continue.
If you don't want to, or can't learn tech for a variety of reasons (which is something that can happen! Not everyone cares about tech as much as your average Linux user probably does), eventually you will get stuck, and will need someone with tech skills to continue.
This is especially significant for the developers who have the mindset of "if you care about it, patches welcome", but they probably don't want you in their userbase anyway, however interesting or vital their software might be.
This mentality also "leaks over" in order to cover up various shortcomings of Linux. Think about the "Flatpak/Snap/Appimage vs distro packages" debate. If the software you're looking for exists in the former but not the latter, people against former tech will tell you to "simply package it yourself and send it to your distro and become a package maintainer and keep up with all the version updates and build system changes".
Aside from having the previous "Just simply..." problem, this mindset also implies that you should've had tech knowledge and because you don't you shouldn't get to use said software, however user friendly it might be.
(To fuel the fire, I personally don't like Flatpak which is the only sane contender, along with AppImage (to me, they serve different purposes) mainly because, despite having some really interesting functionality, Flatpak only seems to wish to integrate with "desktop environments" and makes ad-hoc configuration with window managers & co (theming, fonts, etc.) harder and that's why I don't use Flatpaks, but that's not something a newcomer knows enough to want to care about. As I said, 7 years of Linux experience)
Now, I will say that, all software is clunky. It's just that some are less clunky than others. And that really shows on Linux. As the breeding ground of hobbyist, for-fun software.
Unfortunately, said hobbyist software often ends up either distributed with Linux (rarely), or widely used by certain communities to do certain stuff (the more common way). And because it's popular and there, no real alternatives that might aim to be less-clunky exist.
Said hobbyists also don't really expect their software to get popular, and might burn out and leave it abandoned or "maintenance only" for some time, possibly forever. For another software to take it's place and repeat the same cycle.
When the software is maintained, you can easily tell by just using it that it's being held together with duct tape and half-chewed school glue. From the look and feel, to organization of the interface, to more important things like if it crashes every five minutes or not.
I am going to name and shame Manjaro in particular. I believe that they're only alive and stable because of sheer luck. After forgetting to renew SSL certificates twice, firing their treasurer for not suspicious reasons at all, DDoSing the AUR twice, I can't still believe they're popular enough to have enough manpower for a phone version. You know, the thing the "desktop" Linux stack is terrible at.
How do you get Arch, a distro famous for not allowing partial upgrades, being on the "bleeding edge", and most importantly, not for those who don't know what the hell they're doing, decide that you're going to hold back packages for a week without any particular testing, market towards the newcomer, and at the same time encourage the use of the AUR, which is inherently incompatible with Manjaro because of both "holding packages back" (incompatible versions) and "market towards newcomer" thing (they have no idea how to audit PKGBUILDS for security, and why should they need to?).
If you're looking for "Arch but pretty installer", EndeavourOS is the way to go. I'm not affiliated with them, I don't even use their software. I just assume that, if they are continuing to follow the footsteps of Antergos without any major deviations, they know what the hell they're doing. Also not for the newcomer.
Still don't expect support from the Arch community. You'll get laughed at. They're just like that.