This post is about the thing in the title. I used to work for Yelp. For historical reasons — probably “the initial developers preferred it” — their mostly-Python codebase had always been in
IMO it’s because open source developers commonly use editors that have poor support for tabs, like Vim and Emacs.
Tabs are definitely better but to use them properly you do really need a “visualise whitespace” option enables. Emacs does it like this and Vim like this. Both awful.
Possibly also a bit because tabs for indentation, alignment for spaces is just too complex for most developers. Hell most can barely even get spaces right. I work in a couple of languages without an autoformatter (e.g. SystemVerilog) and some of our files are a joke. A mixture of 2 and 3 space indentations, sometimes on the same line!
Every single time I’ve tried to work on a file using tabs, I’ve had to configure my tabstop to be the same width the original author used in order to make the formatting reasonable. I understand that in theory customizable tabstops is preferable, but I’ve yet to see it work well.
(For what it’s worth, I think that elastic tabstops, had they been the way tabs worked in text files to begin with, would have been far preferable.)
IMO it’s because open source developers commonly use editors that have poor support for tabs, like Vim and Emacs.
Tabs are definitely better but to use them properly you do really need a “visualise whitespace” option enables. Emacs does it like this and Vim like this. Both awful.
Possibly also a bit because tabs for indentation, alignment for spaces is just too complex for most developers. Hell most can barely even get spaces right. I work in a couple of languages without an autoformatter (e.g. SystemVerilog) and some of our files are a joke. A mixture of 2 and 3 space indentations, sometimes on the same line!
Every single time I’ve tried to work on a file using tabs, I’ve had to configure my tabstop to be the same width the original author used in order to make the formatting reasonable. I understand that in theory customizable tabstops is preferable, but I’ve yet to see it work well.
(For what it’s worth, I think that elastic tabstops, had they been the way tabs worked in text files to begin with, would have been far preferable.)