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.
This is a legit observation. However, I would argue that spaces needs a set indentation width anyway, so if tabs had a set indentation width that coders are expected to maintain when aligning code, it wouldn't make a difference. Enforcing that in practice may be different, but in theory it works.
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".
Show
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.
This is a legit observation. However, I would argue that spaces needs a set indentation width anyway, so if tabs had a set indentation width that coders are expected to maintain when aligning code, it wouldn't make a difference. Enforcing that in practice may be different, but in theory it works.
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.