パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Prototype-based OOP Prothon」記事へのコメント

  • いちばん有名なプロトタイプベースは、JavaScript [night.nu]かな。
    • でもJavaScript 2.0 はクラスベース [mozilla.gr.jp]になりましたよね。

      確かに、class があるほうが分かりやすい気もするけど、個人的にはスクリプト言語としては、プロトタイプベースの方がすきかな。
      --
      use Test::More 'no_plan';
      • Re:JavaScript (スコア:2, 参考になる)

        うーん。この場合、クラスベース(を中心にする)かどうかよりも、
        そのクラスの仕組みの導入の仕方が気になるところです。
        そのURLを見ましたが、
        new Classname(args)という、Java/C++系の文法を採用してるようですし、

        >処理を戻す前に B のコンストラクタを呼び出さなければならない。この呼び出しは明示的なものでも暗黙のものでもよい。

        とも書いてありますね。

        で、俺にとってはこれがかなりカッタルク感じます。
        同じクラスベースでも、SmalltalkやRubyのほうがエレガントだと思います。
        というのは、あっちは、

        ○コンストラクタは、単に"インスタンスを作って
        • by Anonymous Coward

          Rubyのが一番お洒落でしょうね。 Class Objectのnewメソッドは、空っぽ(?)のオブジェクトを作ってから、 そのオブジェクトのinitializeメソッドを呼んであげる、っていうだけ。エレガントです。

          CLOSもそうですね。newにあたるmake-instanceは クラスを取るメソッドで、それはクラスを引数に

          • >この手順、起源はどこなんでしょう。

            どうなんでしょうね?
            どうでもいいといえばいいんですが(^^;

            そりゃそうと、後知恵の謗りを覚悟で言うならば、
            この手順は「OOP者にとっては凄く自然ってゆーか当然」とも映ります。

            クラスの責務は、インスタンスの骨格(メモリ領域)を作り、
            そのインスタンスの骨に最低限の自己肉付け能力(=メソッドテーブル)を与える、というところまでで終わり。
            で、後はそのインスタンス自体に全部やらせる、ってわけです。

            この責務分割のしかたは、無理がないんですよね。
            どっかの言語(たしか有ったよね)のように
            「コンストラクタ中のこの場面では、thisが参
            • >new Hoge()方式は、誰が起源なんでしょう?

              SIMULA I です。当時はまだクラスもオブジェクトもなくてそれぞれ
              「アクティビティ」や「プロセス」と呼ばれていました。つまり、
              アクティビティ「Hoge」の新しいプロセスを変数に束縛するための
              文で用いられます。具体的には次のように書きました。

              element Pat;
              activity secretary (redhaired, thumbs);
              boolean redhaired; integer thumbs;
              begin ... end;
              Pat := new secretary (true, 10);
              親コメント

UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア

処理中...