RodegastТабуляция выглядит по-разному в разных редакторах. Обычное дело, когда она выглядит как восемь пробелов. А чтобы табуляция выглядела короче восьми пробелов, нужно делать дополнительные настройки редактора.
2) Не надо считать пробелы.
В то же время четыре пробела выглядят везде одинаково. Четыре пробела легко выдерживают три уровня вложенности - общепринятый предел кода на любом языке. В питоне же мы берём, например, метод в классе - это уже два отступа потрачены. Потом мы этот метод начинаем писать и в нём самом нужно сделать три уровня вложенности. Получится, что пять отступов надо иметь на экране. Вот с табуляцией ты уже должен её настраивать, чтобы она выглядела как четыре пробела, иначе всё разъедется в ширину так, что глаза начнут бегать влево и вправо, чтобы просто код прочитать и помнить его содержимое. Когда смотришь на такой код, ты не видишь его весь сразу. А когда глаза постоянно бегают, ты просто устаёшь, устают мозги (движения глаз, запоминание кусков, переключение внимания, - это всё утомляет мозг). Другое дело четыре пробела: ты смотришь в одну точку и видишь весь код с вложенностью в пять уровней - обычное дело для питона.
Да, и это мы ещё не рассмотрели JavaScript, где вообще один уровень вложенности автоматом забирается, чтобы код в файле сделать локальным. В JavaScript'е нет пространств имён, поэтому все файлы добавляются в одну область видимости и ты просто не можешь иметь глобальные объекты в файле, так как глобальные объекты в разных файлах будут замещать друг друга неопределённым образом. В питоне сам файл становится пространством имен, а в JavaScript такого нет. То есть позволить себе длиннющие отступы в JavaScript ты просто не можешь, иначе получается лажа, как в php, читать это просто невозможно (неприятно). Пока одну строку прочитаешь, может полдня пройти.
RodegastУ меня табуляция в Go используется, потому что там автоформатер, корректирующий синтаксис, меняет все отступы на табуляцию. Так я в режиме для Go настроил внешний вид табуляции на длину в четыре пробела. Но если открыть такой код на GitHub'е, то мы видим, что там даже в окно браузера не помещается обычный, несложный код на Go, потому что там тоже много конструкций, требующих вложенности по пять уровней и даже больше - семь, восемь. Там есть анонимные функции, которые прямо внутри блоков принято делать. Короче, пять уровней для Go - обычное дело, хоть там и классов нет, как в питоне. И вот табуляции в таком коде дают о себе знать. Читать дискомфортно. Приходится код скачивать к себе, открывать своим редактором, который укоротит отступы при отображении, и после этого код становится читабельным.
Вот я сейчас попробовал это проделать в Geany, по нажатию на Tab он как и положено ставит табуляцию
RodegastДля этого есть “cat -vet”, grep и sed. Проблем никогда не испытывал, потому что всегда могу посмотреть, есть ли хоть одна смесь, и всегда могу быстро заменить все табуляции в файле на четыре пробела одной командой. Всегда это делал и проблемы уходили.
в итоге пробелы и табуляция смешивается что не допустимо
RodegastЯ изучал разные стили и остался на четырёх пробелах. Умею также и настраивать табуляцию для себя, но создаю файлы с четырьмя пробелами. Они надёжные, простые, не требуют дополнительных действий, их легко заменить на что угодно, они всегда видны в том виде, в котором записаны.
3) На табуляцию я не переходил. Я ей постоянно пользовался.