The variability in the ways tabs are displayed, which you can not control, make tabs a non-starter.
Spaces always look like spaces. So when you use them, your text looks the same wherever it is displayed, and that requires no additional work.
The one caveat here (if you don't already know) is that the `make` utility has never been updated to allow spaces, even to this day. So, you must use hard tabs in Makefiles.
Also worth knowing is that Python's official style guide, PEP-8, insists on spaces (specifically, 4 spaces), and the officially-provided formatting tool for Go uses tabs (a decision that I was most displeased with). It's physically possible to go against these recommendations, but you're not likely to find any community cooperation for that decision if you're working in those two languages.