オブジェクト指向システムの設計 174 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
ゲイツもMSもGUIの模倣でこそジョブズやAppleに遅れをとったけどその後はSmalltalkから学んでいる
アラン・ケイも .NET のことは Java よりはマシと言ってた
http://tech.nikkeibp.co.jp/it/members/ITPro/ITARTICLE/20030605/1/
ジョブズも表層のGUIだけパクって終わりにしたLisa/Macを反省してNeXTSTEPを作らせたけどね
http://web.archive.org/web/20121016134054/http://americanhistory.si.edu/collections/comphist/sj1.html#soft >>974
メッセージに関してはそうだろうね
ケイもAltoにもっとパワーがあったらErlangみたいなのを試したかったって言ってたし
ただシステム全体としての動的性に関してはErlangやそれで作られたものとは比較にならない 「クラスにメソッド送るシステムなんていまじゃ壊滅してる!
21世紀の現代の主流はC ++!」って5ちゃんねるで喚いてる人とか
そりゃ誰も相手したくねぇよw メッセージングのパラダイムを持ち出しておいて
メソッドとメッセージの区別すらついていない人がよくいるけどここにもいたかw
あと現在主流なのはクラスやそれに準ずるエンティティで抽象データ型を実現することで
その出自がC++というだけだよその程度の区別もつかないのか
たった2行の煽りでここまで致命的に間違えられるとかどんな才能だよ… はいはい、「俺の宗教の教義では俺の信じてるものは俺の神から、
俺の信じていないものは敵の神からもたらされたと決まっているから。」
いただきましたw >>979
まあまあ、しょせんSmalltalkのメッセージはニセモノの出来損ないなんだから
細かいことに目くじらたてるもんじゃ無いよ ほんとにメソッドとメッセージの区別がついていないらしい… Erlangという本物を持ち出されてSmalltalkerサンぐうの音も出ないらしい Erlangはオブジェクト指向というよりメッセージ指向 メソッドとニセモノのメッセージと本物のメッセージの3パターンで説明お願いね メッセージはオブジェクトに送られる情報(多くの場合はエンティティ)
Smalltalk-72ではトークン列
Erlangなどではデータ列
Smalltalk-76以降はセレクター(多くは呼び出しが期待されるメソッド名)+引数(オブジェクト)
奇妙だけど他の言語でもSmalltalk-76以降に準じた解釈(メソッド名+引数)をそう称する場合が多い
一部の宗派でセレクター(メソッド名)のみをメッセージと称する場合もある(Objective-Cでよく見られる〕
メソッドはオブジェクトがメッセージを受けて行う操作
Smalltalk-72ではメッセージにパターンマッチする記述(リーダーマクロのようなもの)
Erlangには無いが、強いて当てはめればメッセージを受けたときの処理部分
Smalltalk-76以降ではクラスに属する関数がそれに当たる
もともと「メソッド」はメッセージを受け取った際に目指す状態である「ゴール」を記述する場とする予定だったが
Smalltalk-76でSimula-67スタイルのクラスとそれに内包される関数を用いる機構を採用したため
クラスに内包される関数とメソッドとの間に明確な差はなくなった
とか、とりあえずこんな感じで つまり、本当に非同期にメッセージパッシングしてるErlangは特別だけど、
Smalltalkのメッセージはメソッドコールと変わんないってことですね メッセージがエンティティであることが重要で同期か非同期かは後付けでなんとかなる問題
たとえばIoなんかはそうなっているし、Concurrent Smalltalkという方向性もある
メソッドコールについてはさすがに静的に決定しているそれをメッセージと呼ぶのは滑稽だろう
動的メソッドコールについても例えば期待するメソッドが存在しない等で失敗したときに
メッセージを第一級オブジェクトとして参照可能な機構が組み込まれていないなどサポートを欠いていれば
その言語での動的コールをメッセージと称することはちょっと無理があるような 同期を非同期に変えるのに比べたら、静的なのを動的に変える方が簡単だし、後付けでどうとでなる問題だよ いずれにせよメッセージと称したい情報を必要なときにエンティティとして扱えるしくみがあればどうとでもできるよ メッセージがメソッドコールだとしても、基底クラスに共通メソッドとして実装されているならそれはメッセージで間違いないだろ。 メソッドコールと違いメッセージというからには送り手はその都合で情報を勝手に送りつけるわけだから
それを受け手がどう処理するかについて関知しないスタンスがとれなければさすがにダメだろう そんなん待ち行列になってんじゃね?
つか、メッセージの実装って、結局メソッドコールなOSばかりだしな。 Smalltalkのメッセージを全部非同期にしたら、信じられないくらい遅くなるかブッ壊れると思うよ
だからSmalltalkはメッセージの受け手が即座に処理してくれる事を期待してるし、何も関知してないなんてウソだよ Smalltalkじゃなくても全部非同期なんかにしたら遅くなるか破綻するだろう 「関知しない」は「どう処理するか」で「いつ処理するか」だけに限らない
SmalltalkでいえばdoesNotUnderstand:(Rubyならmethod_missing)相当の機構と
その際処理したいメッセージをエンティティとして扱える機構がないといろいろ厳しかろうという話 このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 199日 5時間 25分 16秒 レス数が1000を超えています。これ以上書き込みはできません。