From: gotoken@... (GOTO Kentaro) Date: 1998-07-30T14:27:50+09:00 Subject: [ruby-list:8964] What is a ruby program? ごとけんです 知らないけど興味のある話題なのでちょっと書きます。 In message "[ruby-list:8963] What is a ruby program?" on 98/07/30, Takao KAWAMURA writes: >Rubyにおける、プログラムの位置付けがよくわからないです。もち >ろん、擬似BNFの範囲ではよくわかるのですが、オブジェクト指向 >的な了解の仕方がわかりません。 よくは分からないのですが、オブジェクト指向的な了解と いうと、メソッドの呼び出し元との関係で規定されること を目指しているように聞こえます。 >たとえばEiffelだと、rootクラスのコンストラクタがプログラムの >実行を指定していますよね。 Eiffel も全然知らないのにナニですが、コンストラクタ として位置づけをするのはなにかオブジェクト指向とは 遠いものを感じます。Ruby のトップレベルのように 処理系のそとの世界との界面になってる部分も含むような 統一的な理解は不良設定問題もしくは病理的なものを 生むもののような気がしてなりません。 >そこからの類推だと、mainの特異メソッドと解釈するのが自然かな >あと思ったりするのですが、どうなのでしょう? いずれにせよ、そ >ういう記法はないですよね? 今の書き方だと、トップレベルの文 >がクラスの埒外にあるように見えてしまって、すっきりしないのは >私だけでしょうか。 トップレベルの self に対する操作は ruby の世界でも 書けますが、プログラムの実行をするというのはむしろ 処理系自体から得られる副作用を期待しているのであって、 ruby の世界で行われるメソッドの利用(オブジェクトへの 操作と状態の観察)とは根本的に違うような気がします。 もちろん、我々の計算機利用は全てオブジェクト指向の 観点から理解できると言う主張もあり得るとは思うのですが、 それは我々生身の人間もオブジェクトと思ったりしないと いけないハナシになりそうです。 えーっと、つまり僕の主張(てゆうか感想)は 「構文としてのプログラム」にがオブジェクト指向っぽい 名前がないことに対する不満なら解消の方法はあると思う のですが、「rubyプログラムの実行」にオブジェクト指向 的位置づけが見当たらないと言う不満だとすると、それは オブジェクト指向的というものの素性を議論しないとつめ られないと考えられるし、僕はそういう位置づけすること が無理じゃないかとなんとなく思う ということです。 なんだか全然関係の無いことを書いちゃったような 気もします。だとしたらごめんなさい。 # 最近謝ってばっかり; -- gotoken