コーディングで「スペース」と「タブ」のどちらを使えばいいのか?
「どちらがメジャーなのか?」という観点でいくと、2022年現在はスペースの方が圧倒的に多いみたいです。
確かに自分自身、他の人のコードを見ているとスペースの方が多く、タブが使われている場合は意識して合わせることが多いです。
既存コードに合わせるが前提
まず既存コードの修正の場合は、既存コードに合わせるのが大前提です。
スペース・タブが混在してしまうと、タブの設定によってはズレてしまいます。
また、コードの中身は変えていないのにタブをスペースに変えただけでもGit上では変更と認識されてしまいます。
スペースとタブの比較
スペース
半角スペースを偶数個入れてインデントします。
最近のテキストエディタでは、デフォルトでtabキーを押しても自動で半角スペースが入ってインデントできるようになっています。
スペースの場合は誰がどのテキストエディタで見ても、必ず半角スペース分の幅だけインデントされます。
タブ
タブはテキストエディタで幅を設定できます。
そのため、複数人で作業していても自分だけ好みの幅に設定して表示できます。
また、半角スペースは偶数個入力されるのに対して、タブは1つで字下げが表現できます。
スペースであるメリットとは?
スペースとタブを比較すると、タブの方が好みの幅に設定できるし便利なのでは?と思ってしまいます。
しかし、逆にタブは環境によって字下げの見た目が変わってしまうとも取れますし、ターミナルの画面など環境によってはタブをコピーすると自動的に半角スペースになることがあります。
コピペすると半角スペースになってしまうと、結局タブと半角スペースが混在してしまう恐れがあります。
スペースは明確にタブの幅が定義できますし、タブを直接持ってこない限り多くの場合はスペースとしてコピペされます。
コピペなどの操作でタブが混ざる可能性が低いのと、誰が見ても同じ見た目になるのがスペースのメリットです。
個人的にはそれぞれの環境で好みの幅にできた方が良いと思ってしまうのですが、スペースの方がメジャーですし、あえて逆らう必要もないので今後もスペースを基本にしていきそうです。