ArininAV

Почему стандарт кодирования 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, которая создана для конвертации кода в соответствующий вид.