[#6214] RE^2: HTML class — 青山 和光 <PXN11625@...>
In-Reply-To: [ruby-list:6118] Re: HTML class
[#6219] Ruby連載 第4話 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
原です。
まつもと ゆきひろです
原です。
ももちゃん@あるもにこすです.
まつもと ゆきひろです
In message <199802040557.OAA18458@picachu.netlab.co.jp>
まつもと ゆきひろです
In message <199802040739.QAA20750@picachu.netlab.co.jp>
まつもと ゆきひろです
In message <199802040803.RAA24375@picachu.netlab.co.jp>
[#6249] Re: i++ — 助田 雅紀 <masaki.suketa@...>
助田です。
ことけんです
まつもと ゆきひろです
しげひろです.
ももちゃん@あるもにこすです.
まつもと ゆきひろです
ももちゃん@あるもにこすです.
まつもと ゆきひろです
[#6256] pop & smtp-lib.rb — tateishi@... (Takaaki TATEISHI)
立石@理科大です。
[#6272] I'd like to subscribe this ML — INOUE Katsuyuki <inoue@...>
井上勝行 と申します。
[#6279] Re: i++ — 助田 雅紀 <masaki.suketa@...>
助田です。
[#6314] RE: ruby's design policy (Re: I'd like to subscr ibe this ML) — 助田 雅紀 <masaki.suketa@...>
オブジェクト指向周辺をぶらぶらしている助田です。
まつもと ゆきひろです
井上勝行です。
まつもと ゆきひろです
[#6315] install some versions — gotoken@... (GOTO Kentaro)
ごとけんです
[#6333] ruby 流に添削して下さい — nkon@...2.3web.ne.jp
さくです.
さくです.自己フォロー.
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
わたなべです.
[#6342] Re: ruby's design policy (Re: I'd like to su bscr ibe this ML) — 助田 雅紀 <masaki.suketa@...>
助田です。
[#6372] ruby 1.1b7 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
前田です。
わたなべです.
ふなばです。
まつもと ゆきひろです
ふなばです。
[#6373] call for scripts — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
> もっと良いものがあるかもしれないと考え,実例集に載せられるよ
sort-schedule.rbで、ちょっと疑問に思っていることがあるのです
金城です.
まつもと ゆきひろです
金城です.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
原です。
From: Shin-ichiro HARA <sinara@blade.nagaokaut.ac.jp>
きくたに@ぷ〜たろ〜です。
さくです.
わたなべです.
まつもと ゆきひろです
前田です。
前田です。
まつもと ゆきひろです
前田です。
前田です。
前田です。
前田です。
わたなべです.
ふなばです。
In message <19980222011624S.tadf@kt.rim.or.jp>
前田です。
ふなばです。
ふなばです。
けいじゅ@日本ラショナルソフトウェアです.
Regard to "[ruby-list:7447] Re: call for scripts"
[#6422] simple_chat_server — 青山 和光 <PXN11625@...>
In-Reply-To: [ruby-list:6395] Re: call for scripts
[#6447] gsub — Tadayoshi Funaba <tadf@...>
ふなばです。
[#6514] ROT13/47 — OZAWA Sakuro <crouton@...>
小澤さくです.
[#6516] RE^2: simple_chat_server — 青山 和光 <PXN11625@...>
In-Reply-To: [ruby-list:6437] Re: simple_chat_server
まつもと ゆきひろです
class String; def - x; end; end; %-
[#6538] IE favorites to HTML — OZAWA Sakuro <ozawa@...>
小澤さくです。会社からもMLに入っちゃいます。
[#6565] Re: Counter class [Re: i++ ] — toyofuku@...
豊福@パパイヤです。
[#6582] File::Separator on cygwin — OZAWA Sakuro <ozawa@...>
小澤さくです。
わたなべです.
小澤さくです。
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
[#6591] ruby 1.1b8 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
前田です。
けいじゅ@日本ラショナルソフトウェアです.
前田です。
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
さくです.
前田です。
小澤さくです。
うさぎの名前ででています:-)
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
[#6601] 8-queen — TAKAHASHI Masayoshi <maki@...>
高橋です。今度ちゃんと1.1b7にします……と書こうとしたら、b8になって
[#6605] true/TRUE false/FALSE nil/NIL — OZAWA Sakuro <crouton@...>
小澤さくです.
前田です。
まつもと ゆきひろです
[#6610] tcltklib dosen't compile — TEI meiki <tei@...>
鄭です。
[#6621] here document — Tadayoshi Funaba <tadf@...>
ふなばです。
[#6635] hello — WATANABE Tetsuya <tetsu@...>
渡辺哲也と申します。
まつもと ゆきひろです
>>>>> "matz" == Yukihiro Matsumoto <matz@netlab.co.jp> writes:
[#6706] Re: Counter class — toyofuku@...
豊福@パパイヤです。
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
[#6735] Mutex/ConditionVariable/Queue — shugo@... (Shugo Maeda)
前田です。
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
前田です。
From: shugo@po.aianet.ne.jp (Shugo Maeda)
前田です。
From: shugo@po.aianet.ne.jp (Shugo Maeda)
前田です。
まつもと ゆきひろです
[#6786] Re: Mutex/ConditionVariable/Queue — senda@...
From: shugo@po.aianet.ne.jp (Shugo Maeda)
前田です。
前田です。
前田です。
けいじゅ@日本ラショナルソフトウェアです.
In message <199802261520.AAA18702.keiju@cupmail0.rational.com>
前田です。
In message <199802270237.CAA00362@soleil.localnet.or.jp>
前田です。
In message <199802270635.GAA00354@soleil.localnet.or.jp>
前田です。
[#6819] ruby 1.1b9 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#6829] monitor.rb — shugo@... (Shugo Maeda)
前田です。
[#6830] what is 'octet decimal' — OZAWA Sakuro <crouton@...>
さくです.
[#6852] Counting Semaphore — Kazuhisa YANAGAWA <katze@...>
Counting semaphore をちょっと作ってみました. 見ての通り, コードは
[ruby-list:6347] Re: ruby's design policy (Re: I'd like to su bscr ibe this ML)
まつもと ゆきひろです
In message "[ruby-list:6341] Re: ruby's design policy (Re: I'd like to su bscr ibe this ML)"
on 98/02/09, 助田 雅紀 <masaki.suketa@tonen.co.jp> writes:
|
|助田@ちょっと反応が遅れましたです。
|Mix-in は、1つの具象クラスに複数の抽象クラス(=Module)を多重継承
|する機能と考えれば、C++ で、(複数の)抽象クラスと1つ以下の具象
|クラスを多重継承させる場合と、同じじゃないのという気がして「ほと
|んど変らん」という風に思っている訳です。
うーん,Mix-inは「多重継承で出来ないことをできるようにするツー
ル」ではなく,「多重継承で出来ることのサブセット」である,と
いうことについては認識していただけているでしょうか.そういう
意味で,「Mix-inは1つの具象クラスに複数の抽象クラス(=Module)
を多重継承する機能」であり,「C++ で、(複数の)抽象クラスと
1つ以下の具象クラスを多重継承させる場合と同じ」です.
|多重継承では無く、Mix-in を採用した積極的なメリットってあるんだ
|ろうかという疑問が、根底にあるんです。
|決して、Mix-inが駄目で、多重継承が良いと言っている訳ではないです。
|多重継承を採用しないで、Mix-in という方法を採用した理由が知りたい
|のです。
まず,繰り返しになりますが,Mix-inは多重継承でできないことを
実現するものはなく,多重継承のサブセットです.で,なぜサブセッ
トにしたのか,という話ですが,まず多重継承の問題からお話しま
しょう.
多重継承にはいくつか問題があり,大きく分類すると
(1) モデルが複雑になる(継承関係が属性の付加やis-a関係な
ど様々な目的で使われてしまう)
(2) 独立に開発されたメソッド,属性の間で名称重複が起きる
というものがあります.しかし,だからといって多重継承をあきら
めると継承階層を越えた実装の共有が出来なくなります.これはつ
らい.
で,多重継承の経験が豊富なlisp界では昔からMix-inという手法が
使われていました.どのようなものであるかという説明は繰り返し
ませんが,これはメインの継承以外の継承関係は「性質の付加」と
いう使い方しかしない,という意味になります.
ちなみに,rubyでは2の方に対するアプローチはあっさりあきらめ
てます.
さて,rubyでMix-inを採用した理由は
* 多重継承があれば,それを使ってしまうから
複数のクラスに対してis-a関係を持つ設計は間違ってます(注:
まつもとの主観です).しかし,多重継承を持つ言語が増えて
来た現在,そのようなことを深く考えないで多重継承を使う人
はますます増えるでしょう.rubyではいっそのことそのような
設計をやろうと思ってもできないようにしてしまうことで,苦
痛を軽減しようと考えました.
* 多重継承の(1)の問題を解決させる方法としてMix-in以外の方
法が知られていないから
rubyは採用していないものの静的型言語では2に対する解決策
はかなり知られてきています.しかし,1の問題に対する言語
からのサポートはほとんどありません.rubyはそれらの言語と
は違ったアプローチをとることを望みました.
* Mix-in手法の知名度が低いから
今後rubyを使う人が沢山になれば,「自然にMix-inを使える人」
も増えて来ると思います.それはオブジェクト指向プログラミ
ング全体に対する貢献になると思います.
です.
まつもと ゆきひろ /:|)