漸くCを切り離したぞ!

……ということで、漸くCを切り離しました。
1ヶ月かかった。
ちかれた。

そして今さらの反応。

どんだけゆとりですか(笑) 各ビットのネーミングとかはそりゃああるだろうけど、 その程度のビット演算で悩んでどうするのかと。 あとはまあ、マクロでくるむくらいはしていいとは思うけどさ。

404 Not Found

うーん、ビット演算ではなくて、
そのビット演算の結果、どうなっているのかが読み取りづらいんですよねえ、と思った訳なのです。
「で、そのビットはどんな効果を及ぼすの?」という感じで。
いや、過去の自分が読んだら、こいつはゆとりだ! とか思うんでしょうけれども。

hoge_flag |= HOGE_FLAG;
...
if (hoge_flag & HOGE_FLAG) {
    hoge_flag &= ~HOGE_FLAG; 
}

が至るところに出現するんですが、これが立っているとどうなるの?
っていうことが解りづらいですよねと……。

if (flag & HAVE_ITEM_FLAG) {
    ...
}

と書いてあるとき、
アイテムを持つことができるのか、それとも持っているのかわからなくなったり。
(例えばこの場合は「持つことができる」でした)

canHaveItem();
hasItem();

とかならなあ、
とか思った訳です。
フラグが、
CAN_HAVE_ITEM
HAVE_ITEM
で別れていればいいのかもしれないんですががが。
でも、やっぱりこれは命名なんでしょうねえ。


これは別にC固有の問題ではなくて、
みねこあさんの言うように、

Cだからというより「悪い命名習慣」の話と、「それでも安全で 読むのに助かる型情報がついてくる 静的型付け万歳」という話、特に静的型と可読性の話に見えて。つまり、良くある静的OOPL VS 動的OOPL in 大規模開発 に類似した話なだけに感じます。(ミスリード?)

2008-11-23 - みねこあ

であるのかもしれず。
故に単に「名前重要」「静的型付けだけに頼ってはならぬ」ということなのかもしれません。
何となく、Cのフラグのそれはマーキングでしかない、と思うんですよね。
「これはこういうマーク」では人に伝わらない訳で、
そこが気になったのかもしれません。
であるからして、

むー。でも、そんな心の中のモデルをみんなで共有するには、名前が大事だとわたしは思う。あとはコメント。というわけで、名前重要、コメント書け~!――と言う、それだけの話になっちゃうと思います。

2008-11-23 - みねこあ

が幸せへの道かもしれないなと。
ソースは自分のためではなくて、
人の為に書くのだー!
と常々言っている自分ももっと頑張る必要あるわけなんですけどね。

だから 「C はワンマン向け」と言われてしまうと、「ちがう!単に酷いプログラマが書いた酷いコードなだけです!」と、C を庇いたくなってしまうのが人情だなぁ、とわたしは思ったのでした。

その通りでございます。orz...