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

OOLとは何か、OOPとは何か」記事へのコメント

  • DQNはともかく少なくとも俺は、
    「OO言語を使うの必須だ」とは言ってません。
    #俺もまたDQNかどうかは、さておくとして。

    べつにLispでもいいんじゃないですか?
    OOPというよりもどちらかというと、参照ベースの変数とか、GCとか、そっちのほうが
    (気楽にプログラミングできるような高級な言語の)基礎としては大事な事柄で、
    それこそCLOSみたいに、それらの仕組み(だけ)を駆使してライブラリレベルでOO言語風に仕立ててもいいんだし。

    問題はshだとそれ「すら」旨くできない、という点だと思います。
    OO「も」出来ない(やりにくい)。
    そしてそれは、それ以外の色々なことも出来ない(やりに
    • 議論の基礎知識がないので本格参入はできませんが、ちゃちゃだけでも^^;;

      まず、ご存じないような感じがするのでirbの紹介
      http://www.rubyist.net/~matz/?date=20030815
      これを使ってUnixのコマンドを呼べばかなりのことができそうに感じます。

      Windowsでしたら、ActiveScriptRubyをいれれば、一通り遊べます。
      http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/

      もっとも、Rubyからでは標準出力と標準エラー出力を同時に取れなかったと思うため、
      完璧なものではないでしょうけれども。

      ###
      個人的に「UnixのOOラッパーとしてのRuby」という言い回し
      • >議論の基礎知識がないので本格参入はできませんが、ちゃちゃだけでも^^;;

        や、俺もよく判っていません。
        このmishimaさんの数年来のm(__)m日記を手繰って読んでるだけです。
        #そういや、日記へのコメントのページから、作者の記事一覧ページへ、行けるリンクが無いような…>スラド

        >まず、ご存じないような感じがするのでirbの紹介
        >Windowsでしたら、ActiveScriptRubyをいれれば、一通り遊べます。

        あう。名前は知っていますが使ったことが無いもんで言及しませんでした。

        そういやLispつーかSchemeな人々が時折言ってますね、
        「いっそLispをコマンドラインにしたらどう
        • ちょっと考え直してきました(謎

          > いや、「何を」ラップするのか?という問題が残ります。
          ここでラップするのはある目的を達成するための手段であって、例えばUnixのselectをラップするのとは違うかと。
          ラッパーは当然selectに相当する処理は提供しますが、select自体は提供しない。
          .NETからWin32APIを呼び出すようなものですから。

          > GUIアプリの「fork」が見てみたいのでG7
          IEの「新しいウィンドウで開く」とかはforkっぽいですかね。

          > ついでに「exec」したらどうなるんだろ?
          こちらはExplorerにURLいれたり、IEにファイルパスいれたり、でしょうか。
          • >ここでラップするのはある目的を達成するための手段であって、例えばUnixのselectをラップするのとは違うかと。

            いや、例えばselectのような「考え方」をラップする、ってことは有ると思います。

            例えば数年前のVersionまでのJava(あれもOSですよね?>Sun(藁))には
            selectそのものどころか、select「的なもの」が何もなかったわけで。
            #Threadを使えば、一応同じようなことは(非効率に)行なうことは出来るけど、そりゃ何か違うわけで。

            APIって、大袈裟にいえばFrameworkなんです。
            使い方のベストプラクティスから、時としてプログラム全体の考え方までをも、「縛る」ものです。
            • > いや、例えばselectのような「考え方」をラップする、ってことは有ると思います。
              「考え方」は「手段」のこと・・・ではないか、な。
              ちょっとそこまで詰めきれてません、が、
              UNIXselectの一挙手一投足をエミュレートするわけではない、ってことですかね。
              Cygwinとは違う、と。

              > APIって、大袈裟にいえばFrameworkなんです。
              ですよね、ある種「言語」や「ライブラリ」と同種のものと捉えてます。
              で、パラダイム自体がないというのは確かによくありますね。。。
              ありがちなのが無名関数。

              > 他のアプリで、あんな挙動をする奴って、見たことが無い。
              使っている途中で、分身したり変身するソフト・・・他にないですねぇ。
              デスクトップマスコットとかAgentとか呼ばれるソフトと組み合わせたら、
              なにかおもしろいものができないかなぁ・・・。

              > たしか、C++の仮想関数テーブルの解決を「実行ファイルが起動するたびに」やると、
              > その手間が馬鹿にならんので…という話だったとうろ覚えしてます。
              どうも、バッドノウハウの香りがしますね、、
              プロセスの壁、が解決すればこれは大丈夫、と?

              プロセスの壁って、その高さをメソッドの高さにまで下げればそれでいいのでしょうか。
              #いや、メソッドじゃなくてインスタンスか・・・?

              HTMLのフレームページで、上フレームのJavaScriptが、
              下フレームのJavaScriptの変数にアクセスする感じですよね?
              親コメント
              • by G7 (3009) on 2004年06月27日 12時13分 (#577675)
                >> いや、例えばselectのような「考え方」をラップする、ってことは有ると思います。
                >「考え方」は「手段」のこと・・・ではないか、な。

                考え方はWhatあたりだし、手段はHowだろう、と思います。

                >> たしか、C++の仮想関数テーブルの解決を「実行ファイルが起動するたびに」やると、
                >> その手間が馬鹿にならんので…という話だったとうろ覚えしてます。
                >どうも、バッドノウハウの香りがしますね、、

                ある意味でそうかも。

                >プロセスの壁、が解決すればこれは大丈夫、と?
                >
                >プロセスの壁って、その高さをメソッドの高さにまで下げればそれでいいのでしょうか。
                >#いや、メソッドじゃなくてインスタンスか・・・?

                高さとかいうよりも、「どういう事象を」壁で遮るか?という問題だと思います。

                まず、最悪暴走してもプロセスの外を侵さないってのは、
                ポインタが抽象化されていれば(つまりポインタの演算なんてことの権利をアプリ(?)に与えなければ)
                生じようが無くなる問題なので。
                これは一連のモダン(?)なメモリ管理によって万事解決のはず。
                似たような話として、バッファオーバーフロー云々もこれで解決かと。

                あとはリソースのLimitの問題ですね。
                「このプロセスには」メモリは幾つまで、ファイルは幾つまで、を許すとかいうアレ。
                これ、素朴なOOPではサポートしていませんが、
                Javaとかの中でもそういうLimitっぽい制約をかけるっていう研究は
                なされてるみたいなんで、近い将来に期待ってとこかと。

                あと、そもそもUnixスタイルだと、メモリの座(^^;としてはプロセスしか無い
                ってのも、根本的に間違っているわけです。
                実行ファイル(や動的ライブラリ)をメモリにロードしてから、ポインタを「解決」しておいた状態のモノが
                必ずプロセスの中にしか置けないので、今みたいな変な話になる。
                それはそれで別の身分を与えて、他のプログラム(?)から軽量な参照を許すようにすれば、いいわけで。
                なお、いわゆる共有メモリでソレが出来るかどうかは存じません。
                あとハードウェアによる”プロセス単位”のメモリ保護は、この場合は足枷でしかないってことで以下略。

                >HTMLのフレームページで、上フレームのJavaScriptが、
                >下フレームのJavaScriptの変数にアクセスする感じですよね?

                アクセスPATHが有るかどうか、という話も関係してきますね。
                PATHが有ればそれを不正に使う(故意かバグかはさておき)可能性も有るけど、
                じゃあどこまで遮断しようか?と。

                JavaServletのAPIでも、どっかの時点で、
                "セッション"間のアクセスPATHを封じるようなAPI仕様変更が入ってた
                と記憶してます。

                結局プロセスの壁って、全て(?)のPATHが封鎖されちゃってるんですよね。だから困る。
                必要な所だけ開けるってことをしとくと、だいぶ楽になるはず。

                あと、権限を与える単位って、やっぱりスレッドか、それをまとめたもの(スレッドグループっていうのかなあ)
                あたりになるのかも。
                親コメント

海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs

処理中...