[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 1558] Re: ポインタの定義 (Re: 集約とコンポジション )



小薮です。

On Tue, 06 Mar 2001 01:28:18 +0900
in [jfriends-ml 1557] Re: ポインタの定義(Re: 集約とコンポジション )
Kazuya Maebashi <PXU00211@xxxxxxxxxxx> wrote:

(以下適宜抜粋)
> 連結リストに限らず、new で返ってくるものって *C/C++プログラマ的発想
> では* やっぱりポインタなので、「ポインタがない」と言われると、
> 「????」となってしまうと思います。
> 
> Javaでしばらく悪戦苦闘した末、「なんだ結局ポインタじゃねえか!」と
> 叫んだ人って、結構いっぱいいると思う... 少なくとも、私の周りには
> ゴロゴロしています。

> Javaのアレを「参照」と呼びたい人は呼べばいいと思います。
> 
> でも、「ポインタがない」と言われると、Pascalプログラマどころか
> Cプログラマでも充分混乱します(実例多数)。

> >・・・という風に割り切ったなら、「ポインタ」問題って
> >わざわざ取り上げるほどのことじゃあないんじゃないでしょうか。
> 
> 騒ぐのが目的... ってのは冗談ですが(でもないか)
> 
> まあ、誰もが「{Java|Ruby}にはポインタはない。あれは参照だ」という
> ことでちゃんと理解できていれば、Pascalな人には気の毒ですがそれは
> それで良いのかもしれません。
> # そういやXMLにもポインタはあったっけか。
> 
> でも、私には、「Javaにはポインタがない」という言説はやっぱり
> 混乱を招いているだけに見えます。


というふうに前橋さんのおっしゃることをよむと、なるほど
「わざわざ取り上げるほどのことじゃあない」わけでも
なさそうです。

で、もう一度つらつら考えるに。


> >もちろん、C言語以前からある古典的な定義での「ポインタ」の用法が
> >間違いというわけではないですが、Cの普及とともに、「ポインタ」という
> >言葉がもう一つ違う意味を持つようになったと考えるのがよいと思ってます。
> 
> これも了解しています。

というふうに前橋さんとも共通了解をもてたのですが、
そこから得られる結論として、

・Javaにはポインタがある
・Javaにはポインタがない

という言い方は、*両方とも*混乱/誤解を招く可能性があると
いうことと思います。書き手と読み手の間で「ポインタ」の
意味が食い違うかも知れないからです。
ここに気づかずに、「Javaにはポインタがない」という
表現の問題を指摘して「Javaにはポインタがある」と
主張すると、別の種類の誤解を生んでしまいませんか?
# 逆も真

混乱が生じてしまっている現状でのベストチョイスは、
言葉を惜しまずに書くことではないでしょうか。

> 「JavaのリファレンスはCのポインタとよく似た機能ですが、
> こういうところが違うので危険性が少なくなってます」

結局は、こういう表現が誰の機嫌も損ねずに(^^)正しい情報を
伝えるやり方かと思っています。若干長たらしくなりますが。

「ポインタ」という言葉はどちらの意味が正しいか
問題は「わざわざ取り上げるほどのことじゃあない」
という考えは変わっていませんが、Javaとポインタの
関係について生じがちな混乱をどう回避するかという
問題は十分重要ですね。


> この辺にぼそぼそ書きましたが、「Javaにはポインタがない」と言われて
> 素直に納得してる人って、なんか「参照」もあんまりちゃんと理解してい
> ない人が多いように思うんですが...
> # もちろん小薮さんやまつもとゆきひろさんがそうだというわけではあり
> # ません。

ぎく。やばい。実は小薮はちゃんと理解していないんだったりして・・^^;


-----------------------------------
koyabu@xxxxxxxxxxxxxxxxx