なぜ PEAR 標準コーディング規約のインデントはスペースのみなのですか?

Stig Bakken による回答。

コードにタブを使用せずスペースを用いることは、すべてのエディタや ビューワにおいて共通した表示を保証する唯一の方法です。 タブを4つのスペースとして扱うエディタが多いですが、 8つのスペースとして扱うターミナルやユーティリィティも数多くあります。 例を示します。

printf("%s",
       $arg);

この例では、7つのスペースが "$arg" の前にあります。 もしこのコードが 4スペース-タブのエディタで書かれるとすれば、 1つのタブおよび 3つのスペースとして記述されるでしょう。 もし他の開発者が 8スペース-タブのエディタで 同じファイルを編集すると,次のように見えるでしょう。

printf("%s",
           $arg);

おなじように、8スペース-タブで書かれた次のコードを 考えてみます。

    if ($foo &&
        $bar) {
    }

4スペース-タブのエディタでは,次のように見えます。:

    if ($foo &&
    $bar) {
    }

PEAR のような、 さまざまなシステムやエディタが使用されるコミュニティでは、 タブは機能しません。 他人にはうまく表示されないとすれば、 結局、スペースを使って体裁を整えるしかありません。 スペースを使うことだけが、誰が見ても同じように見えるようにする 唯一の方法なのです。

Jamie Zawinski も この問題について 記しています。

また、コードを適切なスタイルに変換する助けとなるツールに、 Astyle があります。