For #2,
For gaming, if you use steam, you may not face more than the following:
- game does not work with no well known way to resolve. You can find this out by checking protonDB
- game does not work because it needs to enable some options. Very easy to fix, and you can find the options on proton db for each game.
- does not work because you didn’t setup steam right. You often need to enable proton, which in short is steam’s emulator or windows
- does not work because your gpu drivers did not install. This depends on distro and they should all have a guide on how to do it, but usually it is just a matter of installing something.
For programming, you will love your life because everything programming is way easier on Linux.
I have read that it is faster, though I have not tested it myself. Personally, my initial reason to use it was just to try something new and explore the unix world. My reason for staying is that it is a very simple init system that is pleasant to work with. It made me understand what an init system is and use it a lot more.
Systemd is good if you just want something invisible and you do not want to mess too much with an init system unless you have to. Everything integrates with it
OpenRC is nicer if you want to write your own init scripts. It is very well documented also.