Символы с кодами от 0 до 31 куда входит ТАБ являются управляющими символами (comma control / control symbold). И их задача - вызывать разные эффекты при выводе строки на экран. Звук. Backspace. Движения
курсора в разные стороны. Поэтому данный диапазон символов не рекомендуется к оформлению текста. Потому что при печати текста на принтер например - эффект непредсказуем. Многие из них были частью сетевых протоколов и сейчас уже не используются.
Символ табуляции в середине 20-го века использовали для оформления исходников на ассемблере
ради экономии места. Это было удобно. Когда вся память ПК мерялась десятком килобайт - надо было
экономить даже на тексте программы. И это реально работало. В современной разработке вообще
нет необходимости использовать TAB (0x09). Ну разве что в Makefile он по старинке еще используется.
Но мейк делали такие длинно-бородые колдуны что там нет диалога о модернизации. Часть колдунов
уже померли. А оставшимся пофиг.
Еще иногда символ TAB я встречаю в экспортах баз данных в формате TSV (Tab-Separated) но
честно говоря на экране такой дамп выглядит ужасно. Все равно по 1 линии выравнивание не
получается. Поэтому втопку такое.
Сегодня в современнных IDE символ табуляции автоматически заменяется на серию пробелов. Поэтому
смысла спорить о ТАБ нет никакого. Потому что и символа то уже нет. Есть просто клавиша которая
имеет семантику добивания пробелов.
UPD: Для исходников типа Python/Scala TAB (0x09) может создавать проблемы. Особенно когда идет
микс отступов например одна строка TAB а другая spaces. Это сложные невидимые глазами
проблемы. Только компиллятор увидит и ругнётся. Поэтому - выпиливайте ТАБы как сорняк.
Чем скорее - тем лучше.