Most users want an indentation size of 4 so for the rest of this comment we’ll just call that one the default size.
Tabs
Tabs at default/any size
Blind people don’t care about the tab size, just that there’s tabs.
Keyboard users don’t care about the tab size, just that there’s tabs (because it’s only one key to change indentation levels).
Manual formatters don’t care about tab size, just that there’s tabs (because you can’t mess anything up inside the tab itself, but you can with space indentation)
Tabs at larger than default size
Verbose language (e.g. FactoryFactoryFactory) users tend to care about tab size and put the tab size up to 8 to make it easier to read. These users tend to use tabs because it’s fewer keys.
Zen mode users (AKA visual overload users) tend to use larger tab sizes
Tabs at smaller than default size
Users with poorer vision who increase the size of the code while trying to fit as much on the display as possible
Tabs at variable sizes
Users who move their code between a laptop display and a larger display
Users who use terminal splitting / tiling window managers (as a code viewport becomes more squashed, the indentation adjusts to fit the same amount of code in the viewport)
Spaces
Spaced indentation at smaller than default size
Users are unaware of reasons why to use tabs
Users coding in C99 on an 80 character wide shell
Spaced indentation at default size
Working on a project or using a style guide created by developers who originally coded in C99 on an 80 character wide shell
Spaces don’t require additional key presses, you press tab and it puts in X spaces. No one should be using the spacebar except for when you need to precisely align things. Arguably, no one should be pressing the tab key either, as most IDEs can automatically indent for you, and it doesn’t requires tabs or spaces.
Annecdotally, tabs don’t display nicely on some braille devices (saw someone mention this on the prettier tabs discussion while researching yesterday). This may come down to the specific device they use, or it could be entirely false, but all the arguments for tabs/spaces a11y have been anecdotal.
These are all reasons to prefer tabs, but none are reasons to require tabs. And hence, teams will make their own decisions based on what annoys/suits them most.
Tabs are better than just for blind users.
Most users want an indentation size of 4 so for the rest of this comment we’ll just call that one the default size.
Tabs
Tabs at default/any size
Tabs at larger than default size
FactoryFactoryFactory
) users tend to care about tab size and put the tab size up to 8 to make it easier to read. These users tend to use tabs because it’s fewer keys.Tabs at smaller than default size
Tabs at variable sizes
Spaces
Spaced indentation at smaller than default size
Spaced indentation at default size
Mixed Indentations
Spaces don’t require additional key presses, you press tab and it puts in X spaces. No one should be using the spacebar except for when you need to precisely align things. Arguably, no one should be pressing the tab key either, as most IDEs can automatically indent for you, and it doesn’t requires tabs or spaces.
Annecdotally, tabs don’t display nicely on some braille devices (saw someone mention this on the prettier tabs discussion while researching yesterday). This may come down to the specific device they use, or it could be entirely false, but all the arguments for tabs/spaces a11y have been anecdotal.
These are all reasons to prefer tabs, but none are reasons to require tabs. And hence, teams will make their own decisions based on what annoys/suits them most.
https://blog.jetbrains.com/dotnet/2022/08/11/virtual-formatter-in-resharper-2022-2/ https://github.com/prettier/prettier/issues/7475#issuecomment-668544890 - pro tabs
https://github.com/prettier/prettier/issues/7475#issuecomment-1169470712 - pro spaces, with some arguments for tabs
https://github.com/prettier/prettier/issues/7475#issuecomment-1169934190 - claims to be blind, no preference either way
Unfortunately I can’t find the tab display complaint, but it was anecdotal anyway. No one on the internet would lie…