或阿呆のブログ

Pythonを好んで使っているプログラマです。Ruby,Perl,PowerShell,VBAなどでもたまに書いています。最近はスロット放浪記やってます。。

Pythonに慣れてしまったプログラマがC言語で書くにあたって苦労するインデント。

Pythonはインデントをシンタックスとして強制する言語。なので、シンタックスエラーの無いソースコードは見栄えの統一感が素晴らしい。プログラマにはある程度自由を与えるべきだと思うが、見栄えによって可読性が変わったりするので、インデントスタイルの異なるソースコードはバグを生む原因ともなる。

ソースコードにはブロックというものがある。処理の単位ごとに、{}で括ったり、インデントなどで表現したりする。このブロックが、インデントスタイルによって、誤解を招きやすくなるわけだ。

Pythonを使うようになって、最初はインデントスタイルの強制をうざったいと思ったりしたものだが、慣れるとデメリットよりもメリットのほうが大きいと思うようになった。同じ処理を実装するのであれば、コーディングの生産性や品質も上がったと思う。

問題なのは、Pythonに慣れてしまったプログラマC言語を書くときにどうするかというかということ。

インデントのスタイルって、統一さえされていれば、ぶっちゃけどうでもよかったりする・・・。でも、何でも良いと言われると、決められない。優柔普段な俺・・・。これも、慈悲深き独裁者グイド様様を崇拝していることによる弊害ですな・・・。

一つの解決策として、Linuxのindentコマンドを使えば、自動的に整形出来るということがわかった。但し、indentコマンドにはめちゃくちゃオプションが多い。それだけインデントスタイルが数多いということだろう。。。何度も言うけど、決め兼ねる。優柔不断だからねw

indentコマンドでソースコードを修正

$indent sample.c -o sample2.c

整形前ソースコード

$more sample.c

#include <stdio.h>

int main(void)
{
printf("Hello,World!\n");
}

なかなかここまでインデントを使わない人もいないだろうが・・・w

整形後ソースコード

$more sample2.c

#include <stdio.h>

int
main (void)
{
  printf ("Hello,World!\n");
}

取り敢えず整形された。