Re:LLとOO(またはゴミ屋敷)

NyaRuRuさんのコメントにいろいろコメント返しをしたりしたのですが、LLとOO で書いていることについては、NyaRuRu さんのご指摘の通り、やっぱり 「3年落ち」の話であるなぁ、と思い直しました。

LLとOO のエントリ、または上記コメント返しでは、「総称があったって、型の階層を意識したプログラミングをしなくなる訳じゃない(むしろ未だに主はこちら)ので、ま、いいよね」という気分で書き上げたのですが、

まとめ。「C++ コミュニティから出てくるライブラリは、特に2008年の今ならほとんどすべて、ユーザーから受け取る型を Structural に定義しています。その徹底度合いは私の乏しい知識の中で知っている言語(動的静的を問わず)の中でもトップレベルに感じられます。そういう意味で、Structural Polymorphism は "C++ Way" と言えるのではないかと思います。」

d.y.d.

に、ぐぅ の音も出ないです。

お話の分岐その1

それでも、私は日々 型の階層を意識して(または無意識して)C++ のプログラム を組んでいるのだけれども、これは C++ の使い方が下手だということなのだろうか、と悩みます。

もちろん言い訳はあって、ビルドが重いとか、バイナリが肥大化するとかで、template はピンポイントな使用に限定されてしまいます。組み込み屋さんでコンパイラが古いしとか。

が、そういう言い訳が払拭されたときであっても、フツーにboost のようなコードばっかりを書くかというとなんか違う気がしていて、「ライブラリ」と「そうでない部分」にコーディングスタイルの差があって、此方側(そうでない側)では、やっぱり型の階層を意識することが多いと思うのです。

すくなくとも、現状では template を使ったプログラミングを「うはぁ、楽ちんサクサクだぁ」と思ってコーディングしてないぞ、私は。(「うはぁ、愉しいワクワクだぁ」とは思うけれど)

・・・こういう風に思っているということがが 3年落ちということかしら。

お話の分岐その2

型の階層を意識するのが重い・・・というのは、単にそういうプログラミングに慣れていないから重く感じるという視点をわすれてないかい? という突っ込みも戴きました。

静的OOP脳が出来上がっていると、型の階層を利用したプログラミングに抵抗がないというか、負担がないのですよね。
階層を作ってある階層以上は一緒くたに処理しちまえばいいじゃん♪っていう軽さがある。

LLとOO - みねこあ

動的OOPL では、「アタシが同じモノだと思っているのだから、一緒くたに処理しちまえばイイじゃん♪」になるわけです。それを、

型付けをしないのは片付けないことに近い

オブジェクト指向を利用してエスケープを行う

というのは、胸にグサッと来るフレーズです。

いや、あたしの部屋をみても片付け出来ない人間なのは、その通りなのだけれど(^^;


話を戻して慣れのお話について。たしかに思い当たるフシはあって、C++ に復帰しだしたはじめの頃はやりたいことの前に型がガツンと立ちはだかって邪魔をされて、あーーーっもーーーーっ!!・・とよく思っていた訳ですが、今ではそういうことはないなぁと。

多少慣れたとはいえ静的脳を持っているとはとても言えない私がこんなことを言うのもなんですが、それでも、私はやっぱり動的な言語のほうが楽な気がします。

それは、わかりやすくカメラに喩えるなら、Ai化以前の Nikon では レンズを付け替える度に絞りリングをガチャガチャするのですが、それは苦にならないけれど、未だにやらないで済むならやりたくないと思っている――といったところかしら。(←返ってマニアックに^^;)

これは、むしろ道具側より人間側(あたし側)に問題があるとのかもしれない。本を読みたいから引っ張り出す、でも片付けないから部屋が散らかる。ああほんとうに・・・



* * *


この話は、もうすこし整理してからいずれまたチャレンジします。