コーディングで「スペース」と「タブ」のどちらを使えばいいのか?

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


JavaScriptのforEach内で「continue」や「break」のような動作をさせる方法
「とりあえず無料版!」ではなく、機能を知った上で判断したいMAMPとMAMP PROの比較
Nuxt.jsで「Classic mode for store/ is deprecated and will be removed in Nuxt 3.」のエラーメッセージが表示される場合の対処法
ブラウザでこれ以上スクロールできない場合の挙動を制御する「overscroll-behavior」プロパティ
コーディング時のclass名の省略はどこまでして良いのか?「img / btn / ttl / desc / thumb」
Visual Studio Codeで「.html」拡張子以外のファイルでもEmmetを使えるようにする
Visual Studio CodeからFTPソフトのTransmitを使用する拡張機能「Transmit」
Visual Studio Codeでショートカットキーを変更する方法
サーバーのアップロードファイルの最大容量の確認と変更方法
常時SSL化の設定をしたのに「保護された通信」が表示されない時はパスにHTTPが残っているのかも?
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
StationであらゆるWebサービスをまとめて管理する
EmmetのWrap with Abbreviationで複数行のマークアップを効率的に行う
Path Finder 8で使えるツールバーの項目一覧
Google Chromeで「パスワードを保存しますか?」ポップアップを非表示にする方法
Adobe XD × Keyboard Maestroでここまでできる!ショートカットキーであらゆることを実現するマクロサンプル
Chrome拡張機能のVimiumを使ってキーボードだけでブラウザを操作する
変換候補に出ないようにしておいた方が便利な単語や、カタカナにした方が読みやすい単語一覧
Figmaプラグインのインストール方法とその管理方法
Visual Studio Codeのファイル横に表示されるファイルアイコンのテーマまとめ