Tabs bad (Was: ANN: Dao Language v.0.9.6-beta is release!)

Steven D'Aprano steve at REMOVEMEcyber.com.au
Sun Dec 4 22:48:33 EST 2005


Björn Lindström wrote:

> Ed Leafe <ed at leafe.com> writes:
> 
> 
>>Again, specifics would be welcome. I've been using tabs for
>>indentation for over a decade, and have not once run into the horror
>>stories that everyone who hates tabs says will happen, but who never
>>give specifics as to how they cause "problems".
> 
> 
> This article should explain it:
> 
> http://www.jwz.org/doc/tabs-vs-spaces.html


Not even *close* to explaining it. The author doesn't 
mention a single problem that happens because of using 
tabs. He doesn't even try to explain what Bad Things 
could happen. He just *assumes* that Tabs Are Bad, M'kay.

He says:

"My opinion is that the best way to solve the technical 
issues is to mandate that the ASCII #9 TAB character 
never appear in disk files"

How nice. And his option is worth the photons I read 
them by why? It is possible that Jamie Zawinski has the 
best, most logical, inarguable reasons for his opinion. 
But we mere mortals will never know what those reasons 
are from his essay, because he doesn't tell us.


He also says:

"I just care that two people editing the same file use 
the same interpretations"

which is fair enough

"and that it's possible to look at a file and know what 
interpretation of the TAB character was used, because 
otherwise it's just impossible to read."

"Impossible to read" hey? That wouldn't be just a teeny 
tiny overstatement, perhaps?

Out of curiosity, finding a line of text indented with 
spaces (say, "        "), how do you know whether that 
is meant to be a single 8-space indent, two 4-space 
indents, or even eight 1-space indents? Perhaps if it 
is a Python program you might be able to infer correct 
indentation from the program structure, but in an 
arbitrary free-form text file... well, perhaps all text 
files with indents are "impossible to read".

It seems to me that "one tab per indent level" is far 
more logical than "some arbitrary number, N, of spaces, 
often a multiple of eight, or four, or two, per indent 
level, and hope that the number of spaces is a multiple 
of that arbitrary N". But maybe that's just me.


He also describes tabs characters being used "for 
compression". That's a strange argument -- it *assumes* 
that the "real" indent is N spaces, and that an ASCII 9 
tab is some sort of faux replacement. Is it not just as 
likely that tabs are the real deal, and N spaces is 
some sort of tab expansion?

Of course, having told the reader that ASCII 9 
characters should be prohibited from text files, it 
makes the author's original disclaimer "I'm trying to 
avoid espousing my personal religion here" rather amusing.


For the record, I started using tabs, shifted to using 
spaces because it was "recommended", got frustrated 
with having to hit multiple key presses to indent and 
deindent (I use lots of different editors, ranging from 
kwrite to gedit to nano and even, may Wodan help me, 
Windows Notepad -- not only do some editors *not* allow 
auto conversion of tabs, but the ones that do are 
annoyingly inconsistant in how -- and whether -- they 
work), went back to tabs, got frustrated with people 
complaining that indentation was being mangled by 
various webmail and News clients (I never saw it 
myself, mind), and went back to spaces again. I'm now 
feeling sufficiently frustrated that I'm seriously 
thinking of changing back to tabs, and people using 
brain-dead News readers can change their client instead 
of telling me to change my editor.

I'm almost fired up enough about this to start the 
Society For The Treatment Of Tabs As First Class 
Characters. *wink*




-- 
Steven.




More information about the Python-list mailing list