涼の成長記録

自らの人生に主導権を持つべく、独立を目指して2014年3月31日を持ってITエンジニアを退職。そんな23歳♂の成長記録。

K&Rスタイルで納得できないこと

置く必要のない前置き

今年は例年に増して、"終わる"という実感がないのですが、気が付けばもう27日ですね。一日はこんなに長く感じるのに、1年はこんなに早く過ぎてしまいます。そんな歌詞のアニソンがあったような記憶がありますが、気のせいかもしれません。今年はいろんな出来事がありました。しみじみと思い出していくうちに、涙が溢れそうになってきます。いや、そんなことはありませんが。ちなみに我が社は、今日が最後の稼働日でした。連休に入る関係で、今年はもう会えないであろうお世話になった人なんかもいて、今年1年のお礼の一言でも言いたかったのに、皆帰っちゃっててなんだか寂しい気持ちになってしまった涼が今から
K&Rスタイルの不満をぶちまけます!!



本題

私がC言語等でプログラミングする時、K&Rスタイルを採用しています。ちなみにK&Rスタイルとは、ブライアン・カーニハンとデニス・リッチーの"プログラミング言語C"という著書で採用されている最も慣習的なインデントスタイルです。


どんなスタイルかというと、ブロック開始時のカーリーブラケット(波括弧{})をif, for等の制御文の末尾に配置し、ブロック内をインデントするというスタイルです。つまり、

↓こうではなく

if (nowYear > 2013)
{
    printf("Happy New Year!!\n");
}


↓こう書くということです。

if (nowYear > 2013) {
    printf("Happy New Year!!\n");
}


私はコーディングスタイルについて人一倍拘りを持っており、過去に数々のスタイルを試してきました。そして最終的に行き着いた先は、1番慣習的なスタイルがベストだということです。インデントとは関係ありませんが、私のバイブルCODE COMPLETEには、こんな感じに括弧内にスペースを入れると良い、って書いてて

if ( nowYear > 2013 ) {
    printf( "Happy New Year!!\n" );
}

3ヶ月前ぐらいまで宗教的にそれを信じてきましたが、やはり慣習的なスタイルが最強なのです。マジョリティが最強なのです。気持ちよく保守できるプログラマーの絶対数が多く、IDE等が自動生成するコードを弄らなくて良い(C++Builderのフォーマッターなんて酷い)のです。そのため、私はインデントスタイルに関してはK&Rスタイルを選択せざるを得ませんでした。


しかし!1つだけ納得できないことがあります。
何故関数のカーリーブラケットだけは例外的に改行するのですか!?

int main(void)
{ // ←なんでお前改行してんの?
    if (nowYear > 2013) {
        printf("Happy New Year!!\n");
    }
    return 0;
}


これだけは私許せません!どんなに慣習的なスタイルを採用したい私でも、以下のように書きます。

int main(void) {  // 改行なんてありえねーだろ。
    if (nowYear > 2013) {
        printf("Happy New Year!!\n");
    }
    return 0;
}


いや、マジで誰か改行しちゃう論理的な理由をください。同じブロックではありませんか!何故関数だけ特別扱いしてしまうのですか!こんなうざったい程論理的な人間の多い業界で、こんな慣習的なスタイルに論理的な理由がないなんて、ありえないと思うのです。しかし、調べど調べど理由は見つかりません。


何故?何故なの?小一時間カーニハンとリッチーを問い詰めたい。気持ちの良い納得のできる理由さえ見つかれば、これでめでたく私もマジョリティの仲間入りができるわけですよ!たった1つ!これだけの理由で私はマイノリティになってしまっているわけですよ!


しまいには、改行された関数開始ブロックのカーリーブラケットを、関数と同じ行に持っていくマクロなんて組んでしまう羽目になったじゃないですか!何故、何故!皆疑問を持たないのですか!?Yahoo知恵袋に1つぐらい、そんな質問があったって良いじゃありませんか!誰か僕を助けてください!この記事の落とし方も分からなくなってしまいました!それはいつものことじゃないかって!?大きなお世話です!!!


とか言っていたのが恥ずかしくなるぐらい、さらっと「○○だからに決まってんだろjk」みたいな感じで、すげーしっくりくる納得コメントが付いたらどうしよう。いや、むしろ付いてほしい。恥ずかしくなりたい。


あ、もしかしてこれが、「強い感情が出ている文章」というやつ?
自己啓発について・私のクリスマス - 涼の成長記録

また、以下の記事にもありますように、強い感情から生まれる文章は面白いと思います。
怒りはブロガーの栄養 - 感謝のプログラミング 10000時間

怒りか…たしかに怒りみたいな強い感情がブログから伝わると、面白い。ただそれは怒りだけじゃなく、強い感情ってのがポイントじゃないかな

強い感情が出ている文章は面白い。中の人の素が滲み出ているから。


全然面白くねーよ!!


ではでは。