プログラマなら誰もが気になるコーディングスタイルの一つとしてスペースとタブ、どちらをつかってインデントするべきかという問題があります。どちらも使う場合でもそれなりの理由が考えられ、明確な結論が出にくい問題ですが、現役の開発者はどちらをより好んで使っているのでしょうか。
今回この宿命の対決の結果が、GitHubに蓄えられた膨大な数のファイルの調査によって明らかとなりました。
調査を行ったのは、GoogleのDeveloper Advocateとして働くFelipe Hoffa氏で、以下のようなルールに従って結果を導き出しています。
- データソース: BigQueryに格納されたGitHubのファイル
- スターの扱い: スターの数だけを考えトップ400,000リポジトリを採用
- 小さなファイルは除外: 最低10行以上のファイルだけを測定
- 重複なし: 重複ファイルは1つと数える
- 1つのファイルで1カウント: スペースとタブが混在している場合多い方に1カウント
- トップ言語: ファイルの拡張子でファイルの種類を判定(.java, .h, .js, .c, .php, .html, .cs, .json, .py, .cpp, .xml, .rb, .cc, .go)
結果を見ると言語ごとに偏りがありますが、全般的にはスペース派が優勢なようで、タブが優勢な言語はC言語とGo言語に限定されています。
見た目が崩れないスペースが良いのか、タブ幅を自分好みの設定できる利点のあるタブが良いのか、Redditでも熱い議論が交わされています。興味のある方は参照してみてはいかがでしょうか。