I use tabs because I prefer 4-space indents and others might prefer 2-space indentation or the gross and unacceptable 6-space indentation.
If more than one person is working on a code base, there will likely be more than one preference, and with tabs everyone gets to just set their own tab width.
Generally aligning stuff isn’t nice. But if you do, it’s tabs up to whatever level of indentation you’re at then spaces the rest of the way. So you wouldn’t have to assume a tab size. And the tabs and spaces have different semantic meaning (indent vs alignment) so mixing them makes sense. It’s even built into Jetbrains IDEs, where it’s called “Smart Tabs”.
Although really just adding a level of indent is better than aligning.
I use tabs because I prefer 4-space indents and others might prefer 2-space indentation or the gross and unacceptable 6-space indentation.
If more than one person is working on a code base, there will likely be more than one preference, and with tabs everyone gets to just set their own tab width.
Yes, even the 3-space savages.
Tabs work fine as long as you don’t align stuff. If you do, you have to assume a tab size and mix tabs and spaces.
Generally aligning stuff isn’t nice. But if you do, it’s tabs up to whatever level of indentation you’re at then spaces the rest of the way. So you wouldn’t have to assume a tab size. And the tabs and spaces have different semantic meaning (indent vs alignment) so mixing them makes sense. It’s even built into Jetbrains IDEs, where it’s called “Smart Tabs”.
Although really just adding a level of indent is better than aligning.