プログラミングの世界で古くから激しく行われている論争があります。それは、プログラムコードを書く際、各行の字下げ(インデント)にスペースを使うか、タブを使うかという問題です。
コーディングとは無縁の人たちからすると「どっちでも好きな方使えばいいじゃんw」って話ですが、実はそう単純な問題ではなかったりします。だって、みんな頑固で自分のやり方がBESTだと思っているからね(笑)
インデントはタブかスペースか
海外ドラマ『シリコンバレー(Silicon Valley)』でもこの話題が登場しています。このドラマでは、主人公はタブ派なのに彼女がスペース派だったため、別れる事になるという悲劇が起こってしまいます…
う~ん、これは大問題ですね(笑)
タブ派とスペース派、どちらが多い?
スペースの大きなメリットは環境に依存せず綺麗に表示される点、タブのメリットは1回打つだけで楽にインデントを揃えられる点です。
両派主張はありますが、研究結果を見るとどちらを使っている人が多いかは明らかになっています。
これは研究のテーマにもなっている。例えばグーグルのある開発者が、10億ものプログラムファイルを分析し、どちらの方法がプログラマーから好まれているかを調べたことがある。結果は、スペース派の圧勝だった。
そして今回、スペース派はさらにリードを獲得しているようだ。開発者相互のQ&AサイトStack Overflowの分析によると、スペース派はタブ派に比べて、より高い収入を得ているというのだ。Stack Overflowは毎年、大規模な収入調査を実施している。今年は、アンケートの質問に、スペースかタブのどちらを使うかという項目を加えた。収入アンケートに参加した1万2000人のプログラマーから、回答が得られた。
データ上は「スペース派」の圧勝。GitHubにある人気ファイルのほとんどはスペースが使われているようです。ソフトや環境に左右されず表示できるというのは、たしかに大きなアドバンテージですよね。
ちなみに私は収入の低いとされる「タブ派」です(笑)
タブでのインデントに慣れているというのもあるし、1人で完結するプロジェクトが多いのでソースを共有することが少ないためです。ただ、世界的な流れを見ると今のうちにスペース派に移行した方がいいのかもしれませんね…
「インデントにタブを使うかスペースを使うか」絶対的な正解はありませんが、社内やプロジェクト内では統一するようにはしたいですね。