The only sane way to do indentation and alignment of programming code:
tabs for indentation,
spaces for alignment.
This is called smart tabs: https://www.emacswiki.org/emacs/SmartTabs
Spread the word.
Until elastic tabstops become mainstream, that is.
Personal opinion:
using 3 or 4 spaces is acceptable too, though it's not good for people who need wide indentation for accessibility reasons;
using tabs and just never doing alignment is fine too (since it is equivalent to smart tabs and never aligning).