首藤です。

なひさん wrote:

> > 例えば、dRuby では遠隔呼び出しの引数は遠隔にコピーされるわけですが、
>
> # 首藤さんはご存知かもしれませんが。
> コピーを渡すか参照を渡すかは、ユーザーが指定します。

いえ、ご存知じゃありませんで、いつもコピーが渡ると思ってました。
よく知らずに書いてしまいました。ごめんなさい。>咳さん他

> > コピーして渡す方が性能的にお得な場合が多い気がしますし。
>
> セマンティクスが同一である場合のメリットのうち、
> 「開発し易い」以外のものとしては、どんなものがあるんでしょう。

遠隔呼び出しとローカル呼び出しのセマンティクスが同じ
(コピーを渡すのではなくて参照を値渡しする)
ことのメリットは「同じであること」に尽きるんじゃないかと思ってます。
ローカルな処理と分散処理で動作が違うと、
その違いを意識してプログラムを書かないといけないわけです。

じゃ、そういった、ネットワーク透過であること、
ネットワークを意識せずに済むこと、が常に良いことかというと、
それは時と場合と観点と思想 :) に依ります。
僕はどちらかというと、ネットワーク透過ラヴ、という人なのですが、
それでも、ネットワークの障害には対処できないとまずいから、
プログラマはネットワークの存在を強く意識すべきなんです、
という意見にもうなづかされます。

> よかったら勉強させてください。性能?その性能は、Rubyでも効きます?

性能は、アプリケーションの性質に依る、としか言えないと思います。

例えば、何か巨大なデータを引数に遠隔呼び出しする場合を考えます。
コピーを渡すとなると、呼び出しの時点で巨大データを全部転送してしまいますが、
参照だけ渡すなら、通信量はごく僅かで済むでしょう。
しかし、呼び出し先でそのデータに頻繁にアクセスする場合、
参照しか渡していないとアクセスの度に通信が起きて、
性能的に悲しいことになります。

SHUDO Kazuyuki/首藤一幸   私をたばねないで あらせいとうの花のように
  shudoh / muraoka.info.waseda.ac.jp