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".
ShowAlthough really just adding a level of indent is better than aligning.
Show
Is this some kind of python meme I'm too C++ to understand?
Now, I'm completely willing to start a war about { going on the next line.
Totally agree, all my { end up on the next line, 1st spot when starting a function, last character of the keyword when starting an if/for/... section. I even put the closing one on the same line when it's single line, else either at the end of the closing line (when changing really old code) or same indent.
So indenting varies a lot, which makes most 'new' programmers go mental.
while (my code) { I'll do it my way } if (! liked) { toughen-up } else { get used to it multi-line can go both ways... }
That is, unless the font used messes it up. ;)
I'd imagine it's because people who use spaces are either further in their career in average (because the modern programming ecosystem in general uses tabs so new devs are more likely to only know that) or they're just more serious about software development because the kind of person to die on that hill is also the kind of person who is very obsessive about other things as well.
Seven semicolons are the correct way to do indentation (it even alliterates):
int main (void) { ;;;;;;;printf("like this\n"); }
the correct way is to never indent and never use whitespace. Saves memory.
Your goal should be 1LOC every month, no more.
all code should be written in one line with absolutely no breaks. it's the most efficient way