Tabs versus Spaces in Source Code

Duncan Booth duncan.booth at invalid.invalid
Tue May 16 23:09:22 CEST 2006

achates wrote:

>>In particular a common convention is to have indentations at 4
>>spaces and tabs expanding to 8 spaces.
> Like all space-indenters, you seem to be hung up on the idea of a tab
> 'expanding' to n spaces. It only does that if you make your editor
> delete the tab character and replace it with spaces! Really, that is
> the only sense in which your statement makes any sense. If you want
> your indentation to have the width of four, eight, or nineteen spaces,
> set your tabstops accordingly.

It is strange. You use many of the same words as me, but they don't make 
any sense.

The point is about separating the presentation of the source file from the 
semantic content. When displaying the file you can choose to expand tabs to 
any suitable positions. These may be evenly spaced every n characters, or 
may vary across the page. However the important thing is that a tab does 
not map to a single indentation level in Python: it can map to any number 
of indents, and unless I know the convention you are using to display the 
tabs I cannot know how many indents are equivalent to a tabstop.

> Seriously people, this is about separating the content of a source file
> from how it is displayed. It's about letting people work together while
> also allowing them to have control over their own environments,
> something which is and always has been central to the hacker ethos.

Precisely. Using spaces everywhere allows this, using tabs everywhere 
allows this, mixing spaces and tabs is a bad thing. You have to agree a 
convention for the project and conform to it. My experience is that 'spaces 
only' is more common, but your experience may differ.

More information about the Python-list mailing list