I distrohopped a lot for my desktops and then stopped when I got to arch.
For servers, I've used CentOS, Ubuntu, and debian. I never did get too into the the CentOS redhat side of things. I'm not sure why that is except that I just was used to the debian way of doing things... In general, my go to is debian or Ubuntu. Ubuntu is the only distro where every damn time I've managed to break it in ways I can't figure out how to fix. Arch and debian are the only distro s where I've been able to fix something screwed up without a full nuke and reinstall. And I HAVE screwed some things up pretty bad.
Arch though is just so good. I just don't quite trust it to handle updates unattended so I don't use it on servers.
That said, I strongly recommend letting the distro hopping take you on a journey before you land on Arch-- don't skip to the end. It's nice to see how things are done elsewhere (defaults, etc.) so that you've got some opinions by the time you get to Arch and configure your own take on things.
Same story. I love Arch, but having more than one computer with constantly changing custom wm/shell/compiler setup makes it complex to replicate the same changes in all the machines. NixOS makes this just one git push/pull and switch away.
I did run Arch for a while around 2010 but it didn't take. It's nice to find a permanent home - I've been on Gentoo since 2013 and an acquaintance has been on Slackware since the 90s.
Those three seems to be where us tinkerers end up.
Those three do seem like the popular ones amongst the tinkerers.
Could I ask what your favorite things about Gentoo are?
For me, with Arch, it's how up-to-date the repos are and how it doesn't make me compile everything myself. Should something not be available in the repos, chances are I can still compile it myself and build a package using AUR.
A large part of it is just that it's "home" after finding it at the right time in my skill curve - probably could've been Arch as well.
The Arch wiki might be a bit better and we all benefit from it to some extent, the Gentoo wiki is also good and honestly I don't use either that much anymore.
The great differentiator is portage. I never run into "maintainer built the package without xyz support" - sometimes I'll run into "stupid user disabled xyz support when installing" but that's just a config change and easier to accept since I'm the stupid user. In theory they might've missed adding a USE flag for that feature and I'd have to overlay my own ebuild or live without it. Custom source patching is built in and package versions can be (un)blocked via package.mask/.accept_keywords.
Version 4.3 broke something? package.mask: =pkg-category/pkgname-4.3 to downgrade to 4.2 and still automatically get 4.4 when that shows up. Mask >=4.3 instead and nothing will change (but eventually dependencies might force you to fix it, of course).
Compilation is pretty fast on a modern computer. Significantly slower than binary packages sure but it's mostly with browsers and maybe qemu/compilers that you really feel it (and several of those do have binary packages, e.g. www-client/firefox-bin, dev-lang/rust-bin). On my old laptop this turned into an excuse to experiment with distcc and nfs for speedups (Core2Duo with 4GiB RAM is a bit weak for encrypted ZFS + compiling gcc, and also it's fun).
Compilation times is still the strongest con but having compilation as a first-class citizen is what enables most of it and the big stuff you just run in the background.
(For the unaware, do note that "compiling myself" means "emerge pkgname" or "emerge -auvDNU @world" and includes dependency tracking, not "./configure && make" and manually hunting things down.)
When I was first getting into Linux ~2006-2007 I distro hopped constantly until a friend told me about Arch and then there was no more reason to distro hop :)
I'll be coming up on 10 years as well, mostly just because of the AUR. Whatever obscure/proprietary program you might need, there's a decent chance some helpful person has packaged it up. Also has the advantage of easily being able to uninstall the weird 10 year old perl/python/mono version the thing needed to run that would otherwise probably stay on my machine forever.
What I love about the AUR is that if it doesn't exist, it is extremely easy to create a package. Debian packaging and Red Hat packaging were just not very intuitive. PKGBUILDs are simple and effective. Alpine also has similar packaging as Arch.
I've spent quite a bit of time modifying deb source files and rpm source files to do upgrades/downgrades/patches.
I could never start from scratch in making a package. I'd be so incredibly overwhelmed by all the different options and obtuse syntaxes and level of background required.
Writing a batch script that installs everything into a `$pkgdir` directory is so much easier to understand and get started with. And if you publish to the AUR and have some small issue, someone will eventually show up and tell you what's wrong with your script.