Python indentation (3 spaces)

Rhodri James rhodri at kynesim.co.uk
Mon Oct 8 10:10:07 EDT 2018


On 05/10/18 21:48, ts9564 at gmail.com wrote:
>     I am new to Python programming but have significant SQL and C experience. My simple question is,"Why not standardize Python indentations to 3 spaces instead of 4 in order to avoid potential programming errors associated with using "TAB" instead of 4 spaces?"

Thank you for the suggestion, Thomas.  Unfortunately I think it's a 
perfect example of something that was being discussed elsewhere, the 
well-intentioned name change that actually makes things worse in the 
long run.

I think the most likely outcome of switching to 3 space indentation, 
which we could do right now with no need to change a single thing, is 
that it would all seem to work perfectly well for a while.  It wouldn't 
take long for people to get irritated with actually typing three spaces 
though, and to reprogram their Tab keys to three space tab stops.  Once 
that happens, it's only a matter of time before the people who believe 
that Tabs should give you actual Tab characters do the same, and lo and 
behold you are back where you started but with 3-space tab stops as well 
as 4-space tab stops.

Why do I think that's what would happen?  Because that's how we got 
4-space tab stops in the first place.  The original de facto standard 
was for 8-space tab stops (see 
https://en.wikipedia.org/wiki/Tab_key#Tab_characters for some 
background).  8 characters on a 132-character line printer isn't that 
much.  8 characters on an 80 column monitor is quite a long way, on the 
other hand.  People started using four spaces as a more reasonable size, 
used the Tab key for convenience and eventually ended up with the unholy 
mess we know and love today.

Fortunately 2-space tabbing never attracted the attention of the 
tab-character purists, or we'd be in an even worse situation :-)

I've watched this sort of thing happen in too many different arenas over 
the years, most obviously with my father's job.  He worked with disabled 
people, and changing terms used to refer to them never once got rid of 
the associated prejudices.  This doesn't seem to be an easy thing to 
hear particularly when it's associated with something emotive like the 
master/slave debate, but changing terms buys you at best a couple of 
months free of previous associations.  Then the old associations catch 
up, and usually bring some new friends with them.

Changing indent sizes is falling into the same trap as changing 
terminology, I'm afraid.  It's an obvious, well-intentioned thought, but 
it won't actually change anything for the better.  Thank you for 
bringing it up, though.

-- 
Rhodri James *-* Kynesim Ltd



More information about the Python-list mailing list