I seem to remember having a 30 minute bus ride to school through elementary school, and if I missed the bus, it was an hour's walk (though I could do it in about 10 minutes by bike if the swampy bit was mostly dry).
I guess I'm fortunate that my parents not only trusted me to do that, but encouraged it.
That said, I have a face for radio - they probably didn't think anyone in their right mind would even attempt to try and steal me...
In your example, if both developers are using TABs instead of spaces, why would it matter that one sees it as 5 spaces and the other as 8? It's still just a single TAB character either way.
Plus, each developer has the freedom to choose how many spaces a TAB is - I like 8 when I'm using my big monitor, but I prefer 4 on my laptop. With TABs, I can see it both ways depending on the machine.
On the off chance that I'm ever actually editing in a smaller window, I can even set it to 2 characters instead, but when I open that file again on another machine, I can see it as 4 or 8 characters.
Yes, there's an error there, conflating two ideas. I think tabs-only can still cause a problem, say when lining up comments on the end of a line because there might be a different amount needed per line depending on its length. Still, you can't be sure what other people will have, so for interop spaces it is.
It might not be the case for everyone, but my laptop screen is 1920x1080 and has more room for text than I can use. In a three way merge your strategy could help me perhaps.
I'm no Python expert, but the only reason I can think of is a combination of developer inertia and tradition.
In most IDEs, a TAB can be displayed as any number of equivalent spaces (8 being the common indent size), so if I switch back and forth between my big monitor (8) and my laptop screen (4), I can view the code with an indent relative to the width of the screen.
If that code uses spaces, I'm usually stuck seeing an indent of 4 on the big screen monitor - something I find irritating because it makes it harder to visually scan and parse code quickly.
So, even in Python, I always use TABs whenever I have the choice. It's just more flexible.
The driver for not paying attention, same as now. A road painting might be a distraction, but it will only panic you if you see it at the last moment - which should only happen if you weren't watching where your speeding, multi-ton, flammable transportation machine was going on a residential street.
I've never identified a strong correlation between my music playing and coding, but I've learned guitar, bass, saxophone, sousaphone, trumpet, piano, ukelele and drums over the years, and I know enough about violin, cello, upright bass and flute to not sound like a complete tool.
I guess I'd equate that to the ability to write in specific languages (PHP, Python, ASP, Javascript, C) and the ability to read other languages (Perl, Ruby).
I've no doubt that being able to effectively and efficiently learn at one (coding or playing) is incredibly helpful when learning the other one.
Setup costs - PHP has a low barrier to entry in the sense that Apache's mod_php5 is a simple "a2enmod php5" command away. Even PHP-FPM with Nginx is only a few well-documented configuration options away from working.
Currently, no other language can match that. They either require a VM running (Java, Ruby, etc.) or at least have a compile/build step (Python).
UWSGI has a lot of promise, but until it's as easy to get configured as PHP-FPM, PHP is still way easier than everything else.
I guess I'm fortunate that my parents not only trusted me to do that, but encouraged it.
That said, I have a face for radio - they probably didn't think anyone in their right mind would even attempt to try and steal me...