[#21115] ftpup with IIS — TADA Tadashi <sho@...>
ただただしです。
7 messages
2000/03/01
[#21131] RAA の License — Matsuo Hisanori <hisanori@...>
松尾です。
6 messages
2000/03/02
[#21140] extconf.rb on FreeBSD — NISHIKAWA <nyasu@...3web.ne.jp>
にゃすです。
7 messages
2000/03/02
[#21157] あったらうれしいメソッド to_n, to_n!, to_s! — ogino@...
荻野です。あったらうれしいメソッドということで書いてみます。
16 messages
2000/03/03
[#21158] Re: あったらうれしいメソッド to_n,to_n!, to_s!
— 中村暁史 Nakamura Akifumi <BXQ04723@...>
2000/03/03
[#21167] Re: あったらうれしいメソッド to_n, to_n!, to_s!
— matz@... (Yukihiro Matsumoto)
2000/03/03
まつもと ゆきひろです
[#21159] メソッドの入り口 — ogino@...
荻野です。もうひとつご指導ください。
93 messages
2000/03/03
[#21170] Re: メソッドの入り口
— Shin-ichiro Hara <sinara@...>
2000/03/03
原です。
[#21243] Re: メソッドの入り口
— keiju@... (石塚圭樹)
2000/03/07
けいじゅ@日本ラショナルソフトウェアです.
[#21247] Re: メソッドの入り口
— 中村暁史 Nakamura Akifumi <BXQ04723@...>
2000/03/07
[#21267] 引数コピーとオブジェクト指向 (Re: メソッドの入り口)
— Hideto ISHIBASHI <s34204@...>
2000/03/08
石橋秀仁です。
[#21272] Re: 引数コピーとオブジェクト指向 (Re: メソッドの入り口 )
— 中村暁史 Nakamura Akifumi <BXQ04723@...>
2000/03/08
[#21276] Re: 引数コピーとオブジェクト指向 (Re: メソッドの入り口 )
— nobu.nakada@...
2000/03/09
なかだです。
[#21279] Re: 引数コピーとオブジェクト指向 (Re: メソッドの入り口 )
— ogino@...
2000/03/09
oop未満の世界観の荻野です。
[#21282] Re: 引数コピーとオブジェクト指向
— Tomoyuki Kosimizu <greentea@...2.so-net.ne.jp>
2000/03/09
越水です。
[#21285] Re: 引数コピーとオブジェクト指向
— ogino@...
2000/03/10
荻野です。
[#21365] Re: 引数コピーとオブジェクト指向
— Matsuo Hisanori <hisanori@...>
2000/03/13
松尾です。
[#21370] Re: 引数コピーとオブジェクト指向
— TADA Tadashi <sho@...>
2000/03/13
ただただしです。
[#21293] Re: 引数コピーとオブジェクト指向
— Matsuo Hisanori <hisanori@...>
2000/03/10
松尾です。
[#21297] Re: 引数コピーとオブジェクト指向
— ogino@...
2000/03/10
荻野です。
[#21302] Re: 引数コピーとオブジェクト指向
— 土岐 仁謙 <toki@...>
2000/03/10
土岐です。
[#21371] Re: 引数コピーとオブジェクト指向
— Matsuo Hisanori <hisanori@...>
2000/03/13
松尾です。
[#21374] Re: 引数コピーとオブジェクト指向
— TADA Tadashi <sho@...>
2000/03/13
ただただしです。
[#21389] Re: 引数コピーとオブジェクト指向
— Matsuo Hisanori <hisanori@...>
2000/03/13
松尾です。
[#21173] TkSelection.own の使い方? — Noritsugu Nakamura <nnakamur@...>
13 messages
2000/03/03
[#21177] Re: TkSelection.own の使い方?
— Koji Arai <JCA02266@...>
2000/03/03
新井です。
[#21178] Re: TkSelection.own の使い方?
— Koji Arai <JCA02266@...>
2000/03/03
新井です。
[#21179] Re: TkSelection.own の使い方?
— Noritsugu Nakamura <nnakamur@...>
2000/03/04
[#21190] Re: TkSelection.own の使い方?
— Koji Arai <JCA02266@...>
2000/03/04
新井です。
[#21193] Re: TkSelection.own の使い方?
— Noritsugu Nakamura <nnakamur@...>
2000/03/05
[#21186] 文字列の二進数への変換 — ishihara-k@...3.tiki.ne.jp (Hiroki Ishihara)
文字列クラスには hex と oct というメソッドはありますが、
4 messages
2000/03/04
[#21196] cgi.rb で例外が発生 — RIO-T <rio-t@...>
はじめまして、高石と申します。
7 messages
2000/03/05
[#21233] rdindex — rubikitch <rubikitch@...>
るびきちです。
6 messages
2000/03/07
[#21280] raise non-Exception object — Kenichi Komiya <kom@...3.rim.or.jp>
24 messages
2000/03/09
[#21283] Re: raise non-Exception object
— nobu.nakada@...
2000/03/09
なかだです。
[#21315] Re: raise non-Exception object
— Kenichi Komiya <kom@...3.rim.or.jp>
2000/03/11
[#21342] Re: raise non-Exception object
— nobu.nakada@...
2000/03/12
なかだです。
[#21354] Re: raise non-Exception object
— Kenichi Komiya <kom@...3.rim.or.jp>
2000/03/12
[#21358] Re: raise non-Exception object
— matz@... (Yukihiro Matsumoto)
2000/03/12
まつもと ゆきひろです
[#21397] Re: raise non-Exception object
— Kenichi Komiya <kom@...3.rim.or.jp>
2000/03/13
[#21355] Re: raise non-Exception object
— matz@... (Yukihiro Matsumoto)
2000/03/12
まつもと ゆきひろです
[#21300] media watch 2000.03.08 — Noritsugu Nakamura <nnakamur@...>
11 messages
2000/03/10
[#21323] Re: media watch 2000.03.08
— Hideto ISHIBASHI <s34204@...>
2000/03/11
石橋秀仁です。
[#21301] date2 の修正 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
15 messages
2000/03/10
[#21384] ruby 1.4.4 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
35 messages
2000/03/13
[#21454] Re: ruby 1.4.4
— Satoshi Nojo <nojo@...>
2000/03/15
Yukihiro Matsumoto さんは書きました:
[#21403] Re: ruby 1.4.4
— Wakou Aoyama <wakou@...>
2000/03/14
青山です。
[#21461] Re: ruby 1.4.4
— Minero Aoki <aamine@...>
2000/03/15
あおきです。
[#21626] Re: ruby 1.4.4
— Wakou Aoyama <wakou@...>
2000/03/24
青山です。
[#21635] Re: ruby 1.4.4
— Minero Aoki <aamine@...>
2000/03/26
あおきです。
[#21648] Re: ruby 1.4.4
— Wakou Aoyama <wakou@...>
2000/03/27
青山です。
[#21400] 式の中で変化する変数の値 — Kazuhiro Nishiyama <nishiyama@...1.tiki.ne.jp>
Rubyでは変数の値が前から見ていってその時点の値になっているのは
5 messages
2000/03/13
[#21442] 配列内のソート — Takayuki Tanaka <tanaka@...>
こんにちは Tanです。
16 messages
2000/03/15
[#21444] Re: 配列内のソート
— 市川 裕隆 <hirotaka.ichikawa@...>
2000/03/15
市川 as Tanukiです。
[#21449] Re: 配列内のソート
— IKARASHI Akira <ikarashi@...3.dion.ne.jp>
2000/03/15
五十嵐です。
[#21475] SJIS 文字列での問題 — Kenji Nagamatsu <knaga@...>
こんにちは、永松と言います。
5 messages
2000/03/16
[#21480] RD 事始め — rubikitch <rubikitch@...>
るびきちです。
7 messages
2000/03/16
[#21481] IO#method for read data from stream — ARIMA Yasuhiro <fit0298@...>
有馬です。
12 messages
2000/03/16
[#21484] Re: IO#method for read data from stream
— Tomoyuki Kosimizu <greentea@...2.so-net.ne.jp>
2000/03/16
越水です。
[#21537] racc 0.13.0 — Minero Aoki <aamine@...>
あおきです。
6 messages
2000/03/19
[#21538] Project Apollo — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです。Apollo について。
13 messages
2000/03/19
[#21553] Re: Project Apollo
— 中村暁史 Nakamura Akifumi <BXQ04723@...>
2000/03/20
[#21557] <RE =~ target> and <target =~ RE> — ARIMA Yasuhiro <fit0298@...>
有馬です。
7 messages
2000/03/21
[#21570] Qt module for ruby — Nobuyuki Horie <horie@...>
堀江ともうします。
5 messages
2000/03/21
[#21583] ruby for Web — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
27 messages
2000/03/22
[#21584] Re: ruby for Web
— "NAKAMURA, Hiroshi" <nakahiro@...>
2000/03/22
なひです.
[#21594] Re: ruby for Web
— "NAKAMURA, Hiroshi" <nakahiro@...>
2000/03/23
なひです.
[#21586] squid log 時刻変換 — Yamada Kenji <kyamada@...>
8 messages
2000/03/23
[#21604] RDtool 0.6.0 pre4 — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp>
Toshです。
10 messages
2000/03/23
[#21611] Re: RDtool 0.6.0 pre4
— rubikitch <rubikitch@...>
2000/03/24
From: Toshiro Kuwabara <toshirok@yb3.so-net.ne.jp>
[#21720] Re: RDtool 0.6.0 pre4
— Toshiro Kuwabara <toshirok@...3.so-net.ne.jp>
2000/04/01
Toshです。
[#21728] Re: RDtool 0.6.0 pre4
— rubikitch <rubikitch@...>
2000/04/01
From: Toshiro Kuwabara <toshirok@yb3.so-net.ne.jp>
[#21649] net-1.1.10 — TAKAHASHI Masayoshi <maki@...>
高橋征義です。net/http 使いたおし中。
17 messages
2000/03/27
[#21655] Re: net-1.1.10
— Minero Aoki <aamine@...>
2000/03/27
あおきです。
[#21659] Re: net-1.1.10
— TAKAHASHI Masayoshi <maki@...>
2000/03/27
高橋征義です。
[#21664] Re: net-1.1.10
— Minero Aoki <aamine@...>
2000/03/27
あおきです。
[#21889] net/http
— TAKAHASHI Masayoshi <maki@...>
2000/04/14
高橋征義です。
[#21906] Re: net/http
— Minero Aoki <aamine@...>
2000/04/14
遅くなりました、あおきです。
[#21669] new version of mod_ruby & eRuby — Shugo Maeda <shugo@...>
前田です。
14 messages
2000/03/28
[#21681] Re: new version of mod_ruby & eRuby
— Wakou Aoyama <wakou@...>
2000/03/29
青山です。
[#21683] Re: new version of mod_ruby & eRuby
— Shugo Maeda <shugo@...>
2000/03/29
前田です。
[#21671] GoF's Flyweight Pattern — Hideto ISHIBASHI <hideto-i@...4u.or.jp>
石橋秀仁です。
10 messages
2000/03/28
[ruby-list:21279] Re: 引数コピーとオブジェクト指向 (Re: メソッドの入り口 )
From:
ogino@...
Date:
2000-03-09 14:37:57 UTC
List:
ruby-list #21279
oop未満の世界観の荻野です。 自分のことをちょっと書くと、プログラミングというのは苦手でしてあまり大 きなものを満足に作れたことがありません。C は一時期主観的には努力をしま したが、実りませんでした。 BASIC(PC-8001) -> TurboPascal(PC-9801VM21) -> HyperCard(MacintoshIIsi) -> Perl5(Solaris) -> 現在 C++ や Delphi、Java に関しては入門書を読んだ程度の知識しかありません。 一番使い込んだのは HyperCard(HyperTalk) でしょうか。今は Apple からも 見放されていますが、メッセージ駆動方式に非常に感銘をうけました。またス クリプトもオブジェクトのプロパティだったりして、GUI のボタンをコピーす るとスクリプトも一緒についてきました。(ここでいうオブジェクトは皆さん の言うオブジェクト指向のオブジェクトという意味ではないと思いますが) 私の元の質問はたぶん今の話の流れとはちょっとだけ違っていて「あの疑問」 (その2 の部分だと思いますが)というのはメソッドの引数というよりもインス タンス変数とインスタンス変数が指すオブジェクトのどちらを「カプセル化」 で包むべき(better)なのだろうかという意味でした。 私が使っていた今までの言語たちでは変数は値をその中に持っており、そうで ない場合はポインタであるという意識を人間が常にもっています。したがって 変数へのアクセスが限られた関数に制限されれば(すれば)、その中身も当然に 「カプセル」で守られています。 Ruby のような言語では(こういった理解では不正確でしょうが)、オブジェク トというのは直接は手の届かない空間に浮かんでいて、ただ変数という窓を通 してのみアクセスできます。この窓はメソッドが呼ばれるときにコピー分裂を 行うので、メソッドの中で引数で渡された窓からみえるオブジェクトには少な くともメソッドを呼んだ側の窓も空いているはずです。 (もちろんマルチスレッドでなければメソッドの実行中にメソッド外の窓から 手を突っ込まれる心配はありませんが、ライブラリとして作っている場合は実 際にプログラムに使われる時点でマルチスレッドかどうかは知る方法がありま せん。) 個人的には「本当のオブジェクト指向」とか「本当のオブジェクト指向が理解 できているか否か」にはあまり興味を持てないというのが心情ですが、効率的 な(というのはもちろん資源の節約と安全性・堅牢性のバランスの問題もある でしょうが)プログラミングという観点において、窓だけをカプセルに包んで インスタンス変数から見えるオブジェクト自体は外界と共有するほうが良いの か、外界には窓を持たない別のオブジェクトを(コピーにより)生成してオブジェ クト自身もカプセルにつつんだほうが良いのか、お聞きしたくて質問した次第 です。 話のながれから受ける限り Ruby においてはコピーすべきではない、つまりイ ンスタンス変数はあっても、インスタンスオブジェクトとも呼べば良いのでしょ うか、オブジェクトの要素としての他のオブジェクトを保持したりしないほう が、よりオブジェクト指向らしいとされるようです。 Ruby ではない、変数にオブジェクトが入るような言語では変数へのアクセス を制限すれば全部がカプセルに入るのでこのような心配は不要というかしたく てもできないわけですが。 こういうことを考えると、そもそも変数がオブジェクトへの参照であるという Ruby のスタイルが、みなさん(という印象をうけるだけかもしれませんが)の 言われるようにオブジェクト指向と不可分であるかどうかも素人ながら考えて しまいます。 もちろん Ruby の世界ではこの答えは真なのでしょうが、変数にオブジェクト が入るような言語(C++はそうですか?)では「本当のオブジェクト指向」は実 現不可能なのかというと、どうなのでしょう? C++では無理としても。 a = b でオブジェクト(値)のコピーが発生するような仕様の言語の場合でも、 a.msg とかメッセージを渡すことはできると思います。多分問題はメソッドが 引数をとる場合にメソッド内で引数を参照する場合には、それはローカル変数 によって参照されるべきだと思いますし、変数ごとにオブジェクトが独立だと すると本当のオブジェクトの引渡しというのは不可能になります。しかしなが らメソッドが必要としているのは他のオブジェクト自身ではなく、そこから引 き出せる情報だという観点をもつと、まだ他の道もあるように思います。 [1] メソッドに引数として値(ポインタを含む)を引き渡す方式 (変数に値が入るような言語) [2] メソッドに引数としてオブジェクトへの参照を引き渡す方式 (Ruby?) (変数に参照が入るような言語) [3] メソッドに引数として他のオブジェクトからのメッセージを引き渡す方式 (変数に値が入るような言語) こんなことを言い出す根底には、Ruby のような変数に参照がはいる言語では オブジェクトには本名ともいうべき変数名がないわけで、抽象度が高い分、敷 居も高いように思います。このメーリングリストでも Ruby 入門者にどのよう な説明がわかりやすいかという話題などがでることなどもこのことの裏付けに なると思うのです。 またメッセージ交換をオブジェクト同士でしたいと思っても、Ruby では受け 取ったメッセージが誰からか知りようがない、だから引数に自分や関係者のオ ブジェクトへの参照も含めてメッセージを渡さざるを得ない。もちろん、この ときにオブジェクトのコピーを作るのはばかげていると思います。 個人的な(現時点での)「あの疑問」は言い換えると、 あるオブジェクトが生成されるときに、より小さいオブジェクトを構成部分と してもつ場合には心情としては与えられたオブジェクトを隔離したいと思うが、 できない(Ruby の場合)とき、与えられたオブジェクトを雛型として自分の一 部を(再)生成するべきか? もちろん自分にかかわりのあるオブジェクトへの窓口をもっていたい場合は、 単にインスタンス変数が参照を保持しておけばいいというのは分かりますが。 答えとしては、 そもそも Ruby としては変数はオブジェクトへの窓にしかすぎない以上、引数 が指すオブジェクトをコピーしてもあまり意味が無い。そもそも受け取った引 数で参照できるオブジェクト自身が他のオブジェクトへの参照を持っている場 合、実質的なコピーは不可能。 というより、 そんな疑問/心情をもつことがオブジェクト指向を理解していない証拠。 というところでしょうか。 もうすこし「オブジェクト指向」が簡単だったら良いのになぁ、と思うわけで すが、こればっかりは自分の技量の問題でもあるわけで別にオブジェクト指向 の欠点というわけでもない。さしずめ Ruby は「現時点での最良」とでもいう べきか。 すくなくとも自分のなかの「カプセル化」とか「メッセージ駆動」とかとRuby の構文とは直接の一致を見ていなくて、その構文の後ろに見えるようにイメー ジトレーニングをしなければならないという感じです。a という変数があり、 それが指しているオブジェクトがあるとすると、Ruby のスクリプトにはオブ ジェクトが現れないので、一生懸命想像力を働かせて名前もない(クラスはあ るけど)インスタンスを思い浮かべて a をそれへの窓(名札、ポインタ、etc.) とイメージする... なかなか難しいです。名前が無いものは記憶できないし。 とりとめがなくてすみません。 -- 荻野 充 (おぎの みつる) ... 「萩(はぎ)」にあらず 名古屋大学消費生活協同組合