コーディングにおけるインデントはタブとスペースのどちらが多く使われている?!
プログラミングにおいてソースコードの規約は非常に重要で、中でもインデント(段落付け)については非常に重要だと言われています。ソースコードのインデントにタブを使うか、それともスペース(空白文字)を使うかの議論は至るところで行われており、一種の宗教戦争のようになっています。ここでは実際に世界中のエンジニアの方々にアンケートを行った結果と、世界中の著名なオープンソースコードが多数登録・公開されている GitHub のソースコードの統計情報から、インデントにタブとスペースのどちらが多く使われているのか見ていきます。
エンジニアの QA サイト (Stack Overflow) でのインデントに関するアンケート結果
Stack Overflow というエンジニアの QA サイトで、ソースコードのインデントにタブを使っているか、それともスペースを使っているか大規模なアンケートが行われました。約39,000名の開発者のうち、次の図のように 42.9% の開発者がタブを使っており、スペースを使っているのは 37.8%、そしてどちらも使っているのが 19.3% という結果が出ています。(2017 年度のアンケート結果)
Stack Overflow Developer Survey Results 2017
エンジニアの QA サイトですので、世界中の開発初心者から上級者まで幅広いユーザーからの回答を基にした情報です。
GitHub でのコーディング規約の統計情報
また GitHub という Google や Microsoft 等の大企業、世界中の開発者がオープンソース・ソフトウェアを公開している GitHub では、登録されているソースコードの統計が出ています。各主要プログラミング言語毎のインデント (タブまたはスペース) がどうなっているのか、グラフ化されたものをそれぞれ紹介します。
GitHub には実際にプログラムを公開している方が多いので、比較的中級から上級者が多いと思われます。
JavaScript 開発者は?
以下のように JavaScript 開発者の 80.64% がスペースでインデントしています。Popular Coding Convention on Github (JavaScript)
Java 開発者は?
以下のように Java 開発者の 66.466% がスペースでインデントしています。Popular Coding Convention on Github (Java)
Python 開発者は?
以下のように Python 開発者の 94.866% がスペースでインデントしています。Popular Coding Convention on Github (Python)
Scala 開発者は?
以下のように Scala 開発者の 96.835% がスペースでインデントしています。Popular Coding Convention on Github (Scala)
Ruby 開発者は?
以下のように Ruby 開発者の 95.563% がスペースでインデントしています。Popular Coding Convention on Github (Ruby)
C# 開発者は?
以下のように C# 開発者の 82.172% がスペースでインデントしています。Popular Coding Convention on Github (C#)
PHP 開発者は?
以下のように PHP 開発者の 70.729% がスペースでインデントしています。Popular Coding Convention on Github (PHP)
エンジニアの QA サイトではタブ派が過半数を占める一方、GutHub に登録されている中級~上級エンジニアのソースコードによると、スペースが圧倒的に大多数を占めていることが分かります。
タブ派とスペース派のそれぞれの言い分はどちらもごもっともですが、どうやらスペースを使ったほうが無難かもしれません。私のアメリカの職場でも大多数のエンジニアがスペースを使ってインデントしています。
いずれにせよソースコードのインデントは、ソースコードのメンテナンス性やプログラムの読みやすさに大きく関係していますので、タブとスペースの混在は避けてどちらかに統一すべきでしょう。