http://www.perlmonks.org?node_id=847804


in reply to Re: No Hard Tabs in Code
in thread No Hard Tabs in Code

The nearest concession I can make (I am a spaces person) is tabs at the beginning of the line to indent, and spaces to align after that.

That isn't a concesssion; it's the only valid way.

I'm very much a tab person. Tabs are for indenting. They're not for aligning. Indenting is a logical concept, aligning is a visual one. It doesn't matter what size your tabs are set to; N tabs at the start of a line are always the same size as N tabs at the start of the line, always smaller than N+1 tabs, and always larger than N-1 tabs. That's perfect for indenting.

However, a tab is not the same size as any number of spaces, nor are tabs following something other than BOL or tab the same size as any other tabs. That's alignment; tabs aren't for that.

(____ is a single tab. So is ----, for clarity.)

____if(x ____ && y) ____{ ____----print "some foo" ____---- . "some bar"; ____} ____struct foo ____{ ____----int xyz; ____----unsigned char *abc; ____}

IMO, it's pretty obvious what's indentation and what's alignment. Using tabs for the latter, outside of very special cases, is a mortal sin.