Java-jaで肉を食べてきた

と、金曜日は肉を食べにJava-jaにいってきたのですが、
何故か朝まで飲み屋で横になって寝てました。(死亡


途中で
C++は自分で配列の長さ知らないのー!
とかいわれたので、
ちょ「ゆとり!!」とかそういう感じになってた。(そこだけ強烈に憶えている(下部のURLは嘘です)

http://anime2.2ch.net/test/read.cgi/csaloon/1190824126/858

858 【マロン名無しさん】 sage

今日来た奴
「3ヶ月前に使い始めたC++、配列のサイズがわからないからJavaにコンバートしてくれ」
これがゆとりか!!


vectorつかっとけ!
とかそういう話にならざるを得なかった。(JavaVector相当の機能を持つテンプレートがC++にはあります
そこで思った事、


俺は今、ゆとりを目にした!!!!!!!!!



でも、別に悪いことじゃなくて、
配列のサイズなんていうものは意識しない方向のプログラミングこそが真理なのかもしれない。


だいたい、C++におけるboost様がもたらした配列の表現、
scoped_arrayやshared_arrayですらsizeは存在しない。(C++では一般的にlengthではない
これらは配列newの自動deleteを持つ機構に過ぎないためだが、
実質、配列が自身のサイズを知る必要は無いのかもしれない。


Pythonみたいに

for i in range(hoge_array):
    ...

とか書いたり、
C++みたいに

    vector<int> v;
    
    v.push_back(1);
    v.push_back(3);
    v.push_back(5);
    v.push_back(7);
    v.push_back(9);

    for (vector<int>::iterator it = v.begin(); it != v.end(); ++it) {
        cout << *it << '\n';
    }

みたいになってしまうとサイズを意識する必要はない。
(scoped_arrayやshared_arrayからちょっと外れたけど

ようは、配列のサイズを意識しないといけない、なんてことはださいのかもしれない。


とはいえ、バイナリをロードするような場合、
どこかに配列のサイズを書き込んでおいて、
あとはそこ(配列の先頭)に対するオフセットを書き込んで、
ただひたすら構造体を読み込んでいく、なんていうデータ構造をよく使う訳なんだけどもね。