there is a time for everything

現役SIerが技術や育児情報を紹介するブログです。

インデント、タブ派?スペース派?

youtu.be

インデント?

in・dent1 †

他[印]
<段落の1行目>を引っ込めて書く, インデントする.

from WISDAM(抜粋)

文章における段落、プログラムでは"構造"を示すためにインデントします。ブログの文章ではちゃんとできていませんが、段落の頭は一文字下げるのが正しい文章の書き方です。

プログラムでもインデントは存在していて、それがtabかspaceどちらで表現すべきか、延々と議論が繰り広げられています。

そして、答えは出ていません。
流行もありますし、プログラムそのものに影響を与えるものではないので、各言語の文化であったり、個人の好みにいつも帰着します。

何が違うの?

まず、spaceとtabは意味が異なります。
spaceは空白1バイトで、tabは"文字を表すわけではありません"
ここが、space派とtab派の大きな分岐点かもしれません。

[私]
インデントは飽くまでプログラムの構造を見える化する"手法"だと思っています。
プログラム/命令ではないのでどちらかと言えばtabが好ましいと考えています。
(どっちもプログラムで利用することはあるんですけどね。)

実際どう違うの?

プログラム上は、人間様が検知できるような差異は発生しないようです。
冒頭の映像でもありますが、ほんの少しだけ"サイズ"が小さくなるとかあるようですが、今日においてはさして気にすることはないだろうということを言っています。

動画の内容は?

非常に簡潔に翻訳します。

~カップルでプログラミングデート中~
[女]カタカタ...ダダダダ(space)!!

[男]チッ
[女]ちょちょちょ、space派嫌いなん?
[男]いやいや、そんなことないで。気にせんといて。

[女]そう...カタカタ...ダダダダ(space)!!

[男]チッ
[女]いやいやいや!めっちゃ気にしてるやん!あんたtab派やろ!
[男]ちゃうって、どっちゃでもええて。

[女]そう...カタカタ...ダダダダ(space)!!

[男]ほんまspaceのどこがええんかわからんわ!
[女]やっぱ気にしてるやんけ!
[男]tabの方が絶対ええのに!space派と同じ空気も吸いたくないわい!
[女]ぉおん!?オラオラ!(space連打)
~デート終わり~

はい。6割くらいは翻訳できているはずです。
ほんとは少し技術的な会話もしていますが、一般人は気にする必要はありません。

実はこのやり取り、私の身の回りでも起きています。決して本人の前で口には出しませんが、コードが物語るわけですから筒抜けも同然です。「あいつ、どうやらtab派だぞ」とか「space派のコーディングの匂いがする」なんてやり取りはたまにあります。

よろしい、では戦争だ

indent-war
これはSEなら見たことがある人が多いのではないでしょうか。
私も大賛成の絵です。tabでもspaceでも、プロジェクトの指針に従いますが、

混在、、おめーは許さねえ。

おまけ

結局どっちでもいいのですが、私が好きなのはtabです。
インデント幅は大概4spaceで、tabキーを押した時に入力される文字を4spaceにするよう、開発環境を整えるプロジェクトが多いと思います。

なので、入力時はいいんです。
でも、戻す時面倒じゃないですか?
4回もspaceを削除するのが面倒なので、私はtab派です。
上手く4space分削除してくれるようなプラグインがあったら、是非教えてほしいです。

もしあったら、space派になるかもしれません。
最近はspace派が多いですし、2spaceをインデントとするコードは思ったより見通しが良かったので、悪くないな、と感じています。

一般人の皆様、SEって変だけど、
面白いですよ。