Почему стандарт кодирования PEAR настаивает на использовании пробелов вместо табуляций?
Отвечает Stig Bakken.
Использование пробелов вместо табуляций - это единственное решение, которое позволяет быть уверенным в том, что код отображается одинаково во всех редакторах и просмотрщиках. Большое количество редакторов использует длину табуляции, равную 4-м пробелам, но значительно количество терминалов и утилит использует для этого 8 пробелов. Пример:
printf("%s",
$arg);
Здесь "$arg" предваряют 7 пробелов. Если бы этот код был написан в редакторе с табуляциями из 4-х пробелов, то он был бы сохранен как одна табуляция и три пробела. Теперь представьте себе: другой разработчик редактирует тот же самый файл в редакторе с табуляциями из 8-ми пробелов. Код будет выглядеть так:
printf("%s",
$arg);
И наоборот:
if ($foo &&
$bar) {
}
В редакторе с табуляциями из 4-х пробелов этот код будет выглядеть так:
if ($foo &&
$bar) {
}
В обществе, подобном PEAR, где состоит большое количество людей, использующих различные системы и редакторы, использование табуляций просто бессмысленно. Участники будут бесконечно изменять файлы для того, чтобы сохранить нормальное форматирование в их редакторе, изменяя его при этом для всех остальных. И только пробелы могут позволить коду выглядеть одинаково везде.
Jamie Zawinski тоже об этом как-то написал, см. здесь.
Существует также утилита Astyle, которая создана для конвертации кода в соответствующий вид.