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

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」という言い回し
      • 基礎知識とか必要ないですよ(笑)

        > 言い換えれば、そんなRubyが真に動く環境ではUnixと同じことができるわけですね?
        > しかもOOラッピングされた状態で。

        ruby とかまともに使ったことがないのでわからんですが、
        もしそういう環境があったとして、どういうところがうれしいですか?
        (傍から聞いていると、単に ruby という製品に囲い込まれているだけのような気がする)
        --
        # mishimaは本田透先生を熱烈に応援しています
        親コメント
        • by G7 (3009) on 2004年06月11日 22時30分 (#568061)
          >(傍から聞いていると、単に ruby という製品に囲い込まれているだけのような気がする)

          それ言ったらお終いです。
          なぜなら、現状のUnixだって「BSD(だっけ)に囲い込まれてる」「Cに囲い込まれてる」
          と言えてしまうんだから。

          >もしそういう環境があったとして、どういうところがうれしいですか?

          OOPで考えられるところ、でしょうね。
          べつに難しくはないですよ。
          今までだって手続き指向という、1つの恣意的な(^^;考え方で考えてただけなんですから、
          それがOOPという別の恣意的な(^^;考え方に移行したって、基本的には同じ。
          あとはどれだけやりたいことが楽にやれるかの違い。
          で、OOPは(支援体制のしっかりした環境/言語なら)快適だと。

          なお、Ruby独特のクサさについては、あまり心配しなくていいと思います。
          おおむね優等生な言語なので、癖で悩むってことはあまり無いです。
          #文法の細かいところで「ん?」と思うこととかは有るけど。

          ----
          ところで、
          http://seasarproject.g.hatena.ne.jp/habuakihiro/20040610#1086855240
          (とその前後周辺の記事)が、ちょっと気になってます。
          特に
          http://seasarproject.g.hatena.ne.jp/habuakihiro/20040610#1086875509
          あたりかな。
          「(状態が)OSのレベルでサポートされているので、ユーザプログラムのレベルではさほど意識する必要はなかったのです。」
          という。

          同意できるような、同意したくないような(^^;

          なにせ上記って、考えようによっては、それこそ「Pipe世界があればOOP要らないっしょ」と
          すごく似た話です。

          ある意味で正論だし、「それじゃ戦えないから状態やねんOOPやねん」とも思うし、
          それでも判らんDQN(笑)はやっぱり居るから救済しろってのもあるだろうし、
          DQNなんか支援しても意味ないじゃんとも思うし…
          うーんうーん。
          親コメント
          • > >(傍から聞いていると、単に ruby という製品に囲い込まれているだけのような気がする)
            > それ言ったらお終いです。
            > なぜなら、現状のUnixだって「BSD(だっけ)に囲い込まれてる」「Cに囲い込まれてる」
            > と言えてしまうんだから。

            それは別の話でしょう。
            「BSD に囲い込まれてしまった」「C に囲い込まれてしまった」。
            それらは過去形です。でも、ruby にはまだ囲い込まれたわけではない。
            ruby は筋がいいのかもしれないけれど、
            それ以外にもスクリプト言語にもいろいろあるわけで、
            それぞれの言語で囲い込みが起きてしまうのはあんまりうれしくない。
            まぁある程度の「選択と集中」ってのは必要なのかも知れんですが。

            > なお、Ruby独特のクサさについては、あまり心配しなくていいと思います。
            > おおむね優等生な言語なので、癖で悩むってことはあまり無いです。

            G7 さんにそう言わせるということはいい言語なんだろうなぁ…

            > ところで、
            > http://seasarproject.g.hatena.ne.jp/habuakihiro/20040610#1086855240
            > (とその前後周辺の記事)が、ちょっと気になってます。

            あ、これ面白いですね。
            なるほど、自分はユーザアプリから Web に来た方なんだけど、
            いわゆる汎用機とかから業務アプリで来た人からすると
            現状の Web ってそういう風に見えるわけか。
            その時代のアプリケーションの流れ、開発の流れ、設計の流れを
            そのまんま Web に落とし込んでるような案件はそこらじゅうにありますね。
            あーいろいろ分かった気がします。

            んー、ただ、はぶ氏の解決したい問題領域と俺の解決したい
            問題領域は、規模が違いますね。
            俺がパイプで何とかなる、と想定しているのは割と小規模だなぁ。
            個人~数人の規模。

            > ある意味で正論だし、「それじゃ戦えないから状態やねんOOPやねん」とも思うし、
            > それでも判らんDQN(笑)はやっぱり居るから救済しろってのもあるだろうし、
            > DQNなんか支援しても意味ないじゃんとも思うし…

            (笑)でも結局、支援しないとどうにもならんとも思うのです。

            ところで、プログラム開発はたいてい小規模→大規模と
            変化していくものだと思いますが、この途中で再設計しろ、
            作り直せ、っていうのがまぁ理想的なんでしょう。
            再設計の途中で上流の設計に変更が生じていろいろ作り直し、
            なんていうのがよくあるパターンだと思いますが、
            例えばその上流部分に宣言型言語を使うことによって
            変更点をそれなりにうまく吸収、なんていう可能性はないもの
            ですかね?
            まぁ思いつきなんですが。
            --
            # mishimaは本田透先生を熱烈に応援しています
            親コメント
            • >それらは過去形です。でも、ruby にはまだ囲い込まれたわけではない。

              それは身も蓋も無さすぎです(^^;

              >それぞれの言語で囲い込みが起きてしまうのはあんまりうれしくない。

              ああ。rubyという実装自体に囲われるのは困りますね。
              #でもそしたらCに囲い込まれてるのも問題視しなきゃだ。

              まあ字面としてのrubyには、流石に囲い込まれる価値はないでしょう。

              #そういう意味では、Unixも、Cというよりは正確にはアセンブラに囲い込まれてるんだよね(藁
              #なんせ*.oとかの中間ファイルはCじゃなくアセンブラとかのためのものでしょ。
              #お陰でCで使うときは*.hなんていう余計な介助物が必要になっちゃう(T_T)

              ただ、JavaやSmalltalkや次世代Perlがやっている、
              VMだかなんだかの上で生きてくっていう路線なら、
              いいんじゃないでしょうか。
              たとえばJVMの上で動く言語は無数に存在するわけで、ああいう感じね。
              尤も、そういうニーズには、Rubyはまだ対処できませんが…。#それともJRubyとか?(^^;

              で、それによって何が替わるかってーと、
              C(アセンブラ)+プロセス+ファイル
              というUnix世界からの脱却ですね。 Java(OS)やSqueakみたいな感じになる。

              >俺がパイプで何とかなる、と想定しているのは割と小規模だなぁ。

              面白いですね。
              俺に言わせれば、Pipeじゃ困るようになると想定してるのは、「更に」小さい領域です。

              つまり、俺とmishimaさんの言葉の両方が正しいとすれば、
              Pipeが生きていける分野は、中(?)規模だ、ということなりそう。

              ただ、規模とは直交じゃないか?という気もしますけどね。
              バッチ処理はPipeと相性良いから、色々な規模で活動できるんじゃないかなとか。

              >(笑)でも結局、支援しないとどうにもならんとも思うのです。

              そーなんですかねえ?(藁

              DQNと立派な開発者との間の能力差は、10倍とも100倍とも、
              或いは更に符号すら違う(藁)という話が有るんで、
              ついてこれねー奴は「ふるい落とす」ほうが正解
              であるような気もしています。

              てゆーか、輪切りが不可能であるような気がしています。
              「能力に応じた仕事」なんてものは実は無いと思っています。
              プログラミングを成り立たせる必要能力水準は、そんなに低くないんで、
              結局一握りの人以外は「どんな仕事でも」役立たない、というだけじゃないかと。

              #明らかに能力の無さげな会社に居るのでG7
              #もっとも、上得意様も同様にDQNなので、割れ鍋になんとやらですが、その更に顧客は可哀想。

              >例えばその上流部分に宣言型言語を使うことによって
              >変更点をそれなりにうまく吸収、なんていう可能性はないものですかね?

              それは、変更点が「常に」その宣言型言語の領域に収まるか?という問いと等価ですね(^^;

              となると、どこならば生でコーディングしても良いのか?という問題にぶち当たりそうです。
              コーディングしちゃった部分に、後から変更が必要になることも有るだろうし、
              後から慌ててリファクタリングしたとしても、該当部分をコードから宣言型言語に「追い出す」ことが
              常に可能かどうかは保証無しじゃないかと。
              親コメント
        • > もしそういう環境があったとして、どういうところがうれしいですか?
          わたしは、WriteOnceRunAnywhereなところ、ですかね。
          そしてなにより、LearnOnceRunAnywhere(?)なところでしょうか。
          XML系の各種技術の(唯一の?)利点はここにあるかと。
          #それだけに、Ruby標準ライブラリのREXMLに落胆する・・・

          > おおむね優等生な言語なので、癖で悩むってことはあまり無いです。
          ですよね、言語仕様はきわめて‘自然’なものに感じます。
          悩むとしたら貧弱な標準ライブラリ・・・。

          > なにせ上記って、考えようによっては、それこそ「Pipe世界があればOOP要らないっしょ」と
          目標を実現するための適切なPipeラインを張り巡らせるのがつらいから、OOPを使うのでは?
          Pipeラインを張り巡らし、メンテナンスできるWizardがいれば苦労はしない、と。

          #普通にPipeラインを張れる大きさだったら、そりゃPipeのほうが楽ですよね。
          #だからRubyでも非OOPな記述が出来るようになっているわけで。

          > それぞれの言語で囲い込みが起きてしまうのはあんまりうれしくない。
          現状を見るに、囲い込みが起きるとしたら、言語でなく一つ深い層になりそうですね。
          ラッパーは言語でなく仮想環境で、言語はそのスキンってことになるのかもしれません。

          > まあ字面としてのrubyには、流石に囲い込まれる価値はないでしょう。
          「Ruby」は、抽象的な現行環境ラッパーまたは新しいプログラミングの枠組みですよね?
          rubyのことではないと。
          Ruby2にはVM(名称:Rite)が載るそうなので、それなら・・・?

          > 例えばその上流部分に宣言型言語を使うことによって
          > 変更点をそれなりにうまく吸収、なんていう可能性はないものですかね?
          それって、CGI/Perlとかですと普通にやることですよね?
          これであっているのでしたら、それなりには吸収できます。
          #ずれてたらすみません^^;;
          親コメント
          • >悩むとしたら貧弱な標準ライブラリ・・・。

            そ、そうなんですか。
            あんまりテンコモリになってJavaになって(藁)も困るなぁと思っているもんで、
            組み込み&標準の奴は、素朴な数でいいかなとも。

            で、あとは、ライブラリのInstallと「Un」Installに不安がゼロならばOKです。
            尤も、UnInstallの不安がゼロな環境なんて、見たことが無いですが(^^;

            >目標を実現するための適切なPipeラインを張り巡らせるのがつらいから、OOPを使うのでは?
            >Pipeラインを張り巡らし、メンテナンスできるWizardがいれば苦労はしない、と。

            いや、あれはあの人独特のバックグラウンド(笑)も絡むと思います。

            というのは、まあ憶測ですが俺も少し経験的に判る話として、
            所謂「業務アプリ」ならばアレで大体いける、ってのが有るんだと思っています。
            業務アプリって、ほんと、処理とかなんとかについては「稚拙」なもので充分だ、
            っていうことが多いんで、その「稚拙」なものを確実に量産する方法として、
            何かOOP未満(藁)な手段が有る余地も有りそうだ、とは思います。

            #ちょっと低レベル(笑)な企業なら、UMLどころかClassすら未だに疎遠、ってことは大いに有り得ると思う。
            #個人的には考えるだけウンザリしますがね。

            つまり、大したことをやらないんです。
            例えばPipeラインは張り巡ら「さない」んです。あまり多くない数しか扱わない。

            で、問題は、それで済むソフトってのが、ソフト全体(?)の何割を占めるのか?なんですが…
            無論俺も正解なんか知りませんが…

            >Ruby2にはVM(名称:Rite)が載るそうなので、それなら・・・?

            うーん。どうなんでしょう。
            Riteがどれだけ「広い」ものになるかに懸かってますね。
            笛を吹いてもRuby2以外誰も乗ってくれなければ、
            VMにする事の社会的(藁)意味は果たせなかった事になるわけで、
            これはマーケティング(藁)と運に依存するんでしょうね。
            親コメント
            • そ、そうなんですか。
              まぁ、「貧弱」というのはいい過ぎでしょうか。
              でも、言語自体が綺麗で期待してしまう分、そう思ってしまうんです。
              具体的にあげると、
              * Unicode系とSJIS/EUC/JIS間で文字コードを変換可能なライブラリ
                  (Uconv?Iconvは無茶ですよね)
              * W3C DOMの記法が使えるXMLライブラリ
                  REXMLも・・・まぁ、いいんですが、W3C DOM非対応だと引きます。
              って、この二つだけか、PHPのリファレンスを見ると恐ろしげなライブラリが並んでいて、
              それに比べるとー、とか思ってしまったのかな。。

              まぁ、あとはrequireなところとか、
              Perlのppmのようなものがないところとか。

              > 組み込み&標準の奴は、素朴な数でいいかなとも。
              自分のサーバーならば、数なくても入れればいいだけなのですが、
              レンタルサーバーを使っていると、最初からないともう増やせないんですよ。
              純Rubyなものならそれでも増やせますが、コンパイルが必要なものだともう無理。

              そんなわけで、Uconv相当のものは標準添付に入れて欲しい・・・

              > で、問題は、それで済むソフトってのが、ソフト全体(?)の何割を占めるのか?なんですが…
              8割は1行ですんだりして(笑
              冗談のつもりが、冗談じゃないような気もするのが怖い・・・

              > 笛を吹いてもRuby2以外誰も乗ってくれなければ、
              > VMにする事の社会的(藁)意味は果たせなかった事になるわけで、
              > これはマーケティング(藁)と運に依存するんでしょうね。
              まぁ・・・、わたしは乗ることを目論んでいたり(ぉ
              しかし、マーケティングは大切ですよね(笑
              親コメント
              • by G7 (3009) on 2004年06月27日 10時25分 (#577630)
                >* Unicode系とSJIS/EUC/JIS間で文字コードを変換可能なライブラリ
                >* W3C DOMの記法が使えるXMLライブラリ

                考えたら俺、UnicodeもXMLも、出来るだけ避けて通ってるなあ。
                UnicodeはEUCとかのNative(?)コードとの変換で苦しめられることばっかりだし
                (本来、苦しむ場面が有るのがおかしいじゃないですか。変換で苦しむのは結局Unicodeのデキが悪いからですよね)、
                ボヘミアンなScript言語派な俺様から見ればXMLはケーキ食ってる貴族様だし。

                >レンタルサーバーを使っていると、最初からないともう増やせないんですよ。
                >純Rubyなものならそれでも増やせますが、コンパイルが必要なものだともう無理。

                うーん。厄介ですね。
                (そのユーザから見ての仮想的な) /usr/local/lib を使わせてくれて、
                かつコンパイルジョブ(ジョブかょ。死語か?)も使えたら、いいんでしょうけど。
                あるいは鯖のアーキテクチャを公開してくれるとかぁ…

                >8割は1行ですんだりして(笑

                まあRubyだと1行とかでも色々有りでしょうね。
                蛇足ですがCだと1行でやれることなんて殆ど無いです。
                #「アプリ」をCで書くなんて今や自殺行為だと思うのでG7

                少なくともエラーチェックの綺麗化(つまりException)とGCが無いと
                コードが飛躍的にごちゃごちゃ&ダラダラになる。
                そして「意味の有る1つの処理の単位」がどこまで続くか一見して判りにくくなり、
                「コードをまとめるためにコメントを必要とする」ようになってしまう…鬱…
                親コメント

UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie

処理中...