著作一覧 |
インドで留学生してあっちで数年就職してた人とちょっと話して、長年の疑問というか不思議について別の見方が聞けて納得感があったのでメモ。
おれ:子供(たぶん、小学高学年か中学)のころに、インドってカーストとかのせいでえらく非効率だって聞いた。んだけど、なんかそれは偏見じゃないかって疑ってるんだけど。その例に出てきた話ってのは。ホテルに泊まったら電灯が切れている。フロントに電話したら、しばらく待っててくれと言われた。しばらくするとノックの音がした(エヌ氏じゃないけど)。開けるとインド人が4〜5人入ってきた。梯子を用意する係が梯子を電灯の下に置いた。電灯を外す係が切れている電灯をはずした。電灯を付ける係が……
インド帰り:ああ、それはわかりやすくて良い例ですね。もっとも、8人から10人くらい来ると思いますけど。
おれ:えー、これは良い例……というか、もっと多いのか!
インド帰り:だって、それ確かにカーストもあるとは思いますけど、ワークシェアリングですから。
おれ:ワークシェアリング……なるほど、そう考えるのか。
インド帰り:だからJavaを書く人ってのは本当にJavaばかり書いている。そりゃすごい。仕様から何からすべて押さえている。でも、OSのインストールすらできない。知らない。それは別の人。ネットワークの調子が悪くても何もできない、そもそもしない。それも別の人。でもJavaはすごく書ける。
おれ:どのあたりまで細分化してるの? たとえばMVCフレームワークを使うとして、Mの人はひいひいで、Cの人はCばかりできもちいいとか、Vの人はAはしないとか。それは稲垣足穂の分類か。
インド帰り:さすがにそれはないなぁ。JavaはJavaですねぇ。ただし、HTMLはまったく書けない。もしかしたら書けるのかも知れないけど絶対に書かない。それはHTMLの人。ワークシェアリングですから。
というような感じで、話半分としても、おれにはカースト云々よりもワークシェアリングという切り口に納得した。
A感覚とV感覚 (河出文庫―稲垣足穂コレクション)(足穂, 稲垣)
追記:いや、書かなくても良いだろうけど一応蛇足つけとくと、だから日本人はジェネラリストの役回りでいいんじゃない、というように続く。
木村さんのところのリストの話を読んでいて、(そこで語られている内容とは関係なく)JavaではなくCをやらせろというのがなんとなくわかるように思えた。
以下、Javaで単方向リスト
public class List { List(int x) { value = x; } void chain(List list) { if (next == null) { next = list; } else { next.chain(list); } } List next; int value; public String toString() { return value + ((next == null) ? "" : ", " + next.toString()); } public static void main(String[] args) { List top = new List(0); List last = top; for (int i = 1; i < 10; i++) { List list = new List(i); last.chain(list); last = list; } System.out.println(top); } }
実行すると
d:\temp>java List 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
で、こういうのは書ける人なのだが、Cを使うと
#includestruct List { struct List next; int value; }; int main(int argc, char* argv[]) { // }
先生、コンパイルできません! とか。
ジェズイットを見習え |
ほー。それは興味深いですね。<br>いわれてみればそこで躓くというのは考えられてしかるべきですが、<br>あまり気にしたことはありませんでした。>自己参照構造体とポインタ<br><br>>インド帰り:だって、それ確かにカーストもあるとは思いますけど、ワークシェアリングですから。<br>こっちも興味深い。<br>なるほどそういう視点もあるのかあ。
>そういう視点<br>そうなんですよ。目から鱗というか。言われた瞬間にあのすごい人口と国民総生産の低さとかがマッチして納得してしまいました。それに加えて職業の世襲制とかいろいろからんでいるようですね。<br>>自己参照<br>Javaがそのあたりの空気の読み方がうまいとも言えるんでしょうけどね。
Java とか Lisp の変数は,ある意味すべてポインタですからねぇ<br>(実体を直接扱えない.原則,クラス型のインスタンスは全部ヒープオブジェクト.いや,もちろん,エスケープ解析とかの最適化は行われますが…)
まして今は自動ボクシング(漢字カタカナで書くと別のものみたい)まであるから、気にしなくても良い開発者は何にも考えなくても済みますしね。<br>エスケープ解析って、http://alohakun.blog7.fc2.com/blog-entry-650.htmlのことですか。なるほど。