Don't get me wrong. I love Linux and FOSS.
I have been using and installing distros on my own since I was 12.
Now that I'm working in tech-related positions, after the Reddit migration happened, etc. I recovered my interest in all the Linux environment.
I use Ubuntu as my main operating system in my Desktop, but I always end up feeling very limited. There's always software I can't use properly (and not just Windows stuff), some stuff badly configured with weird error messages... last time I was not able to even use the apt command. Sometimes I lack time and energy for troubleshooting and sometimes I just fail at it.
I usually end up in need of redoing a fresh install until it breaks up again. Maybe Linux is not good for beginners working full time? Maybe we should do something like that Cisco course that teaches you the basic commands?
My first foray into Linux was Mint on an old laptop. Then on my desktop I can't quite remember what I used, but I stumbled across the rolling release versus point release divide in distros. I think I wanted a more up-to-date PHP version at the time, and debian/ubuntu were both slow to update to cutting edge had me jump to Arch, at least for development purposes. That was 2017, gaming on Linux wasn't really great back then.
I ended up dual-booting Arch on my desktop, and for all the supposed complexity, if you can read a manual properly, and work through the guides on the wiki… it actually leaves you with a better understanding of how Linux is put together. So long as you're aware of what commands you're putting in.
If I were to compare it to anything, then it's the same sort of difference between building your PC for yourself (Arch), against getting something custom built (ubuntu) versus getting a prebuilt system (Windows). And you know, since migrating to Arch I haven't actually reinstalled once—people who do that are, and this may be controversial, but they're doing it wrong. If you fuck up majorly, like running rm -rf / then sure, you'll have to.
A tip for using the terminal, when you're trying to discover things, you can use tab completion to speed things up. You don't have to type entire commands, or entire directories/filenames. Of course it won't give you any arguments for a script or program, that is what man <command> is for, or a quick search online.
Only a few weeks ago did I finally scrub Windows from my system, I'm never going back, and if I really need it… I'll look into a virtual machine.
I think I wanted a more up-to-date PHP version at the time
This is one of the things I like about Rust: its rustup program can install the latest version of Rust in my home folder. I don't need my distro to carry the latest version.
Unlike some similar things for other languages (like nvm for Node.js), rustup doesn't require me to use a specific shell, doesn't require me to use any special prefix for commands invoking Rust toolchain programs (I can just run cargo build and cargo run like normal), and doesn't touch any environment variable (except adding its installation folder to PATH when rustup is first installed).
Instead, it simply installs a wrapper binary for each of the programs in Rust's toolchain. The wrapper binary checks if there is a Rust version override for the project I'm working on, then finds and executes the appropriate version of whichever program I'm trying to run. Nice and clean, with a bare minimum of nonsense.