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

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 torus (9980) on 2004年03月28日 21時12分 (#522151) ホームページ 日記
          その辺が、Ruby が class-based ではなく、真に object-oriented であるという事なんでしょうね。

          ちなみに JavaScript 処理系のことは良く知りませんが、Flash MX 2004 の Action Script 2.0(JavaScript2 とほぼ互換)処理系では、class などの新しい構文は、古い Action Script(JavaScript とほぼ互換)に対するシンタックスシュガーとして実装されているようです。

          つまり、プロトタイプベースの言語に、クラスベースの構文の皮をかぶせただけみたいですね。
          --
          use Test::More 'no_plan';
          親コメント
          • by G7 (3009) on 2004年04月03日 12時00分 (#525803)
            >プロトタイプベースの言語に、クラスベースの構文の皮をかぶせただけみたいですね

            もしその皮をその言語自体で実装できるなら、
            「他の皮」も作れて、幸せになれるところですね。

            Lisp畑のOOPみたいに、流派が無数(?)に存在できるってのは
            (少なくとも技術的には)凄く良好な状態です。

            #政治的(藁)には一子相伝のほうが良いんだろうけど、
            #そのさい、劣ったほうの子孫だけを残されてしまったら
            #目も当てられません…

            それにしてもDelphiの落とし所も良かったなあ。
            がちがちのコンパイル言語のくせに、
            クラスメソッドの多態が出来るっていうのが。
            それに前述のようなインスタンス作成手順の明示化(?)も
            ある程度達成できていたわけだし。
            特定のクラスだけ特殊なメモリマネージメントをしたいと思ったら、
            インスタンス確保用のクラスメッセージをOverrideするだけ(^^;とか。
            しかもC(++)みたいながちがちNative系の言語でもあるので、
            そのOverrideのさい、相当泥臭い書き方を併用できる。
            つまり柔軟なOOPと泥臭いコードとが綺麗に同居できるわけで。
            親コメント

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

処理中...