オブジェクト指向システムの設計 174 [無断転載禁止]©2ch.net

レス数が950を超えています。1000を超えると書き込みができなくなります。
2017/09/26(火) 07:20:38.98ID:qu+DPehL
前スレ
オブジェクト指向システムの設計 172
http://mevius.2ch.net/test/read.cgi/tech/1467992113
オブジェクト指向システムの設計 173
http://mevius.2ch.net/test/read.cgi/tech/1502182334/

類似スレ
手続き型システムの設計 1
http://mevius.2ch.net/test/read.cgi/tech/1500282714
2018/04/03(火) 21:59:40.75ID:xHu3FOx+
こっちは別のデータ

https://news.mynavi.jp/article/20170330-a133/

> fossBytesに3月28日(米国時間)に掲載された記事「Which Are The Most Loved and Most
> Hated Programming Languages|2017」が、Stack Overflow Developer Survey 2017の
> 調査結果を引き合いに出し、開発者に愛されているプログラミング言語と嫌われている
> プログラミング言語のトップ25を伝えた。愛されているプログラミング言語1位は
> Rustで、これにSmalltalkとTypescript、Swift、Goが続いている。
>
> 嫌われているプログラミング言語トップ25は次のとおり。

> Visual Basic 6
> VBA
> CoffeeScript
> VB.NET
> Matlab
> Objective-C
> Assembly
> Perl
> Lua
> Hack
897デフォルトの名無しさん
垢版 |
2018/04/04(水) 03:20:59.36ID:h2UR4/YM
>>895
なんでVBとかVBAが入ってないし
898デフォルトの名無しさん
垢版 |
2018/04/04(水) 03:22:51.75ID:h2UR4/YM
>>896
そっちも Java がスルーされてるな
CoffeeScript は悪くないと思うんだけど
D とか Julia は呼ばれてないな
2018/04/04(水) 06:54:46.68ID:ITrH2VCT
Smalltalk死滅したと思ってたw普通に処理系とかある
https://dotinstall.com/lessons/basic_smalltalk
2018/04/04(水) 07:59:57.79ID:xIeCjOW7
Smalltalkは今でも現役だよ
日本では壊滅的に過疎ってるだけで
2018/04/04(水) 09:40:51.95ID:XMHeCdXK
おまえの思いは要らない
現役である証拠を書けばいい
2018/04/04(水) 09:52:34.51ID:xIeCjOW7
お前のツッコミも余計
手ぶらの批判は誰でもできる
事実としてPharoの処理系は更新され続けてる
2018/04/04(水) 13:33:18.19ID:1Ww7GQWk
最近ようやくしょぼい専用VCS諦めてしょぼいGitHubクライアントを組み込みにしだしたみたいだね
2018/04/04(水) 15:35:00.13ID:AI7Zq0uN
更新されていたら現役なのか……
よし、Dは現役だな
2018/04/04(水) 16:05:22.98ID:1Ww7GQWk
それはない
2018/04/04(水) 16:15:15.27ID:Vp4f9mRG
インスタンス造り機に「このクラスのインスタンスを作れ」ってぶち込むより
クラスに自分のインスタンス造る機能が入ってて
「おまえのコピーをこの名前で作れ」の方が個人的には関与する言語機能が減って好き。
907デフォルトの名無しさん
垢版 |
2018/04/04(水) 17:04:03.96ID:Pmay6Vdj
javascriptか
2018/04/05(木) 00:06:12.16ID:gzVEs0yB
>>902
> 事実としてPharoの処理系は更新され続けてる

更新されているからと言って現役ということにはならない
あたりまえのこと言わせんな
2018/04/05(木) 00:08:00.87ID:gzVEs0yB
>>906
> 「おまえのコピーをこの名前で作れ」の方が個人的には関与する言語機能が減って好き。

コピーしかできないのか?
なにもないところから作ることはできないのか?
コピーを作った後に、値を変更してインスタンスを完成させるのか?
2018/04/05(木) 00:43:38.66ID:raTA0cM5
new Test() を Test.New() にでもすんのか?
2018/04/05(木) 09:23:27.96ID:ZXf9eqYN
それを言うなら Test.Default().Clone() とか Test.Default().Copy() かと

> 作った後に、値を変更してインスタンスを完成させるのか?

これってプロトタイプベースだから必要なわけではなく、クラスベースでもコンストラクタで普通にやってる作業だよね?
2018/04/05(木) 09:31:20.59ID:ZXf9eqYN
>>908
他の言語の場合は、更新程度なら必要条件にすらならないかもしれないけれど
Smalltalkみたいにドックフードとして食らうことが避けられず
動的かつ可塑性を最大の利点にしている言語・環境に限れば
更新(変化)し提供され続けていることは少なからぬ人に使われている証拠として十分だろうね
2018/04/05(木) 09:36:41.34ID:zY62GpOZ
ドックフードとして食らうことが避けられず
動的かつ可塑性を最大の利点にしている言語・環境
2018/04/05(木) 13:36:49.22ID:ZXf9eqYN
説明必要だった?
2018/04/05(木) 13:39:17.15ID:JfUQNi2M
ドックフード
2018/04/05(木) 14:17:43.32ID:NoTQwqd+
ドックフード
意味の説明もさることながら、どこの業界の用語か知りたい
2018/04/05(木) 14:33:11.81ID:JfUQNi2M
波止場食堂の料理ってことかな
https://tabelog.com/kanagawa/A1401/A140106/14031740/
2018/04/05(木) 21:08:45.28ID:YQEitOA5
ここらへんでどうよ

マイクロソフトが社員に勧める“ドッグフード”栄養学
https://japan.cnet.com/article/20060067/
2018/04/05(木) 21:13:07.08ID:YQEitOA5
ああなんだグかクかって話かつまらん
2018/04/05(木) 23:45:55.89ID:YZZKvgKX
>>912
作る人がいることの証明にはなってるが
使う人がいることの証明になってないよ

誰も使って無くても、更新し続けることはできるんだから
2018/04/06(金) 07:23:27.16ID:LPJ18IcZ
たとえばMatzはRubyをほとんど使わないけどRubyに変更を加え続けていたしそれは容易だ
Rubyに限らず通常の言語の場合たとえ使う人がゼロでもリリースし続けることは理論的に可能

しかしSmalltalkの場合、Smalltalkを使わずにそれに変化を加えることはできないんだよ
2018/04/06(金) 07:32:26.80ID:8wNEeXKm
>Smalltalkの場合、Smalltalkを使わずにそれに変化を加えることはできない

それが正しいとしても
Smalltalk処理系の開発者はその処理系を使い続けている
ってことになるだけで
Smalltalk処理系の開発者以外の人がその処理系を使い続けている
かどうかは分からないよな
2018/04/06(金) 08:09:41.10ID:psgMbVRj
RubyにできてSmalltlkにできないはずがない
2018/04/06(金) 09:04:24.09ID:MsWWfJyW
>>922
他の言語では 処理系開発者=利用者 には必ずしもならないが
Smalltalkではその特殊性から 処理系開発者=利用者 がほぼ成り立つ
したがって、Smalltalkは更新されリリースされていれば利用者は必ずいる

上にもあるがこれだけだよ君はいったい何と戦っていて何を証明したいんだ?
「利用者」の定義をしぼればいつかはSmalltalkの利用者はゼロにできるけど
それだと「俺ほどの人間のアンテナにひっかからないSmalltalkは死滅しているも同然」という情弱識者とたいしてかわらんぞ

もし本当にSmalltalkが実務等で使われているか知りたければ sorabito "smalltalk" とかでググるか
http://pharo.org/success/ にアクセスして事例を精査してみればいいと思うけど
実際のところSmalltalkがどうあろうが端から興味なんてないんだろ?
925デフォルトの名無しさん
垢版 |
2018/04/06(金) 09:42:07.15ID:sTfZcU1Y
>>911
プロトタイプベースでもコンストラクタ定義すればいいだけだよな
2018/04/06(金) 09:43:26.17ID:8wNEeXKm
Pharoを使っているのはPharoを開発している人たちだけってことか
https://pharo.org/
2018/04/06(金) 10:15:31.78ID:MsWWfJyW
>>926
たぶん>>924 の = の誤りの指摘だと思うんで念のためお詫びと訂正しておくと、
これは「〜ならば」の間違いなので申し訳ないけど適宜読み替えてほしい
Smalltalkであっても利用者 = 処理系開発者 の関係は必ずしも成り立たない
ついSmalltalkのメッセージ式っぽく考えて交換法則を忘れてしまった^^;

まあ屁理屈をこねればSmalltalkにおける開発とはすなわち言語や環境の拡張に他ならないので
利用者はすべて処理系開発者だとも言えなくもないけどそれはさすがに言い過ぎだろうしここで主張したいことではない
2018/04/06(金) 10:22:42.82ID:ZnmviTnR
Smalltalkは
海外だと事例けっこうあるんだけどね
日本だとあんまり使われてない
2018/04/06(金) 10:39:28.53ID:8wNEeXKm
xがSmalltalk処理系の開発者ならばxはそのSmalltalk処理系の利用者である

というのが正しいとしても、処理系開発者以外に利用者がいるとは言えない
>>908>>920が言ってるのも「処理系開発者以外の利用者」についてだと思う
2018/04/06(金) 10:40:22.92ID:iXquvPXW
Objective-Cに吸い取られ、吸い取ったObjective-Cも死にかかっている悲劇の言語
2018/04/06(金) 10:44:41.31ID:MsWWfJyW
>>929
こだわるね^^;
では処理系開発者をその言語の利用者にカウントしてはいけない合理的な理由を述べてよ
2018/04/06(金) 10:52:55.90ID:JkCTmz46
処理系開発者をユーザーにカウントしてもいいなら多分Dもユーザーおるな
2018/04/06(金) 11:01:06.13ID:8wNEeXKm
>>931
>処理系開発者をその言語の利用者にカウントしてはいけない

誰もそんなことは言っていないわけだが

利用者が処理系の開発者だけの状況を、その言語は現役とか
その言語は普及しているとか言わないだろ
>>908>>920が言ってるのもたぶんそういうこと
2018/04/06(金) 11:48:03.10ID:MsWWfJyW
>>933
まず君の思う「現役」の定義を明確にしてよ
これまで誰も主張していない「普及」をいきなり持ち出してきたけど、それが答え?
もし一定のシェアをとっていない言語を「現役」と言ってはいけないって法があるなら
今のSmalltalkは誰が見ても明らかに違うだろうこれで満足?

ただシェアこそないがコミュニティはかつてないほど活発だしまして「死滅」からほど遠いのも事実
これをもって「今でも現役」と表現することも決して間違いではないと思うが違うのか?

そもそも>>900の「現役」は>>899を受けての「死滅」なぞしていないという意味でしかない
その文脈を読めてない>>901が自分の考える「現役」と違うってだけの単純な話を
なにをそんなにこだわって執拗につっかかり続けるのかわからん
Smalltalkが今も「現役」を名乗ると個人的になにか不都合でもあるの?
2018/04/06(金) 11:59:37.86ID:3wQ1F3ea
Objective-CがiOS絡みで再び出てきた時に自分が理解できず
「変態言語!変態言語!!」ってほざいてた頭ゆるいアンチApple老人が
いやあれはねとsmalltalkerが擁護するの見て
『ならsmalltalkも俺の敵だ!』ってやってるだけだからw
2018/04/06(金) 12:27:10.77ID:8wNEeXKm
>>934
912>更新(変化)し提供され続けていることは少なからぬ人に使われている証拠として十分だ

とか言い出すからおかしくなる
処理系が更新されてるから少なからぬ人に使われているのは間違いない、だから現役だって主張だろ
「少なからぬ人に使われている証拠」とかいうのがあるなら最初からそれを出せばいい

処理系が更新されているからと言って現役ということにはならないのだから
2018/04/06(金) 12:52:57.07ID:MsWWfJyW
>>936
なるほど「少なからぬ」を文字通り「普及」や相応のシェアを持っているという主張だと短絡して反発したわけね
これもやはり 「死滅」=利用者ゼロあるいは数名 に対し「そんな少なくはない」という程度の意味だと思うけど

では何人くらいが使っていれば「現役」を名乗っていいわけ?とにかくそれを明確にしてよ
2018/04/06(金) 12:58:53.40ID:8wNEeXKm
>>937
知らん
俺が言いたいのは

処理系が更新されているからと言って「少なからぬ人に使われている」ことにはならない
「少なからぬ人に使われている証拠」とかいうのがあるなら最初からそれを出せばいい

ってだけだし、>>908>>920が言ってるのもたぶんそういうこと
2018/04/06(金) 13:48:16.89ID:JkCTmz46
短絡して反発
2018/04/06(金) 13:50:08.64ID:JkCTmz46
ってか利用者ゼロもしくは数名じゃないなら現役なんだったら、やっぱりDは現役じゃん
2018/04/06(金) 15:10:21.25ID:EuPCLdj/
>>938
改めて訊くけど処理系開発側になったらもう利用者としてカウントされなくなるのはなぜ?
利用者が処理系の気にくわない部分に手を加えてそれが採用されるパターンとかよくあると思うんだけど
それともその程度なら開発側とは考えなくても良いの?その場合の線引きは?
2018/04/06(金) 15:28:16.59ID:8wNEeXKm
>>941
なぜたったこれだけのことを理解できないのだろう

>処理系が更新されているからと言って「少なからぬ人に使われている」ことにはならない
>「少なからぬ人に使われている証拠」とかいうのがあるなら最初からそれを出せばいい
2018/04/06(金) 17:17:11.35ID:wJqpEogz
それ、あなたが設定した勝利条件ですよね。
2018/04/06(金) 17:33:39.79ID:A2hg00U/
Smalltalk や Pharo をGoogleトレンドで調べてみると、Windows 95の 1/3 でWindows 3.1 やD languageと同等くらい
(なお、言語だけじゃなくOSと比較したのはSmalltalkは環境であるってのに敬意を評して)

https://trends.google.co.jp/trends/explore?q=Smalltalk,Windows%2095,Windows%203.1,Pharo,D%20Language

Smalltalk、もしかしたらWindows 3.1と同じくらいのユーザ数に使われてるかも知れんね。凄いね!
2018/04/06(金) 17:35:51.79ID:wJqpEogz
アニメDVDの出荷数とか毎週調べてそうw
2018/04/06(金) 18:14:07.35ID:iXquvPXW
うわ、見苦し
2018/04/06(金) 21:13:21.34ID:3wQ1F3ea
「売れてるアニメが勝ちなんだから売れてる証拠をおまえが出せよな!」
(相手にされない)
「ほらDVDの円盤の販売数を調べたぞ!ほっら売れてないからおまえの負け〜俺の勝ちー!」
(一同失笑)
2018/04/06(金) 21:39:10.60ID:BhlurXrp
脈絡なくアニメで例え出すのも意味不明でキメェし、
別のSmalltalkerがそれに普通に乗っかるのもキメェ
2018/04/06(金) 21:45:48.91ID:gJMJciRt
>>941
> 改めて訊くけど処理系開発側になったらもう利用者としてカウントされなくなるのはなぜ?
「処理系開発側になったらもう利用者としてカウントされなくなる」とは言っていない


話の順番が逆で
先にお前が「処理系開発側を利用者としてカウントする」などと
おかしなことを言ったから、お前の間違い指摘しただけ

ここでお前が言ったことを改めて言い直してみようか?

「利用者数がわからないので、処理系開発者を利用者に含めていいですか?」

良いというわけがなかろう?
2018/04/07(土) 08:48:35.78ID:bpYQikic
Smalltalk = Windows 3.1

www
2018/04/07(土) 10:19:42.41ID:f0JiZPxN
メーリングリストの投稿者数(重複除く)から見積もると
Pharo Smalltalkの利用者は数千人くらいはいる

Haskellのだいたい半分くらい
2018/04/07(土) 10:35:25.27ID:K06NcGxe
Haskellの利用者数が2万人以下?ねーよw
2018/04/07(土) 11:18:19.63ID:f0JiZPxN
少し前のデータだけどHaskellもSmalltalkもさして利用者数に増減はないとして参考にすると
Smalltalk利用者の規模はHaskellのおおよそ半分というのは別の解析でも同じ

http://www.dataists.com/2010/12/ranking-the-popularity-of-programming-langauges/
954デフォルトの名無しさん
垢版 |
2018/04/07(土) 11:49:47.91ID:sP9L7wqi
それ人気が低い順にランキングで並べて表示してるだけで、利用者数の絶対値じゃないよ
Smalltalkは約20位でHaskellが約40位だけど、これはSmalltalkとHaskellの間に他の言語が20個あるという意味でしかない

そのリンクの下方にrawdataがあるけど(http://www.dataists.com/wp-content/uploads/2010/12/language_ranks1.csv)、
この中で絶対値はtagcountだけで、それだとsmalltalkが189に対しHaskellが1896で10倍の差がある
955デフォルトの名無しさん
垢版 |
2018/04/07(土) 12:42:55.45ID:Of9pall5
複数のプログラミング言語を使いこなしてる奴なんて世界でも僅かだろ。
比較する資格すら持たない連中がシェアなるもので一喜一憂するのは何で?
2018/04/07(土) 12:54:32.48ID:y0NHVjlZ
そうか?
2018/04/07(土) 12:58:55.13ID:/W+SxBIg
GitHubのリポジトリーで直近1ヶ月の開発者の数を比べてみると
こちらもくしくもてGlasgow Haskell Compilerの36名に対しPharo Smalltalkの16名と約半分だった

https://github.com/ghc/ghc/pulse/monthly
https://github.com/pharo-project/pharo/pulse/monthly
2018/04/07(土) 13:03:00.34ID:y0NHVjlZ
そんなデータが役に立つんならDだって16人なんだよなあ
https://github.com/dlang/dmd/pulse/monthly
2018/04/07(土) 13:44:56.97ID:Ohs7bjSh
>>924
"sorabito smalltalk" でググったら、

ベンチャーで最初にいたエンジニアがsmalltalkerでsmalltalkを採用したとか、
そのエンジニア(元CTO)は去年12月に辞めたとか、
いまの採用ページにはsmalltalkに一言も触れてないとか、

色々あったんだろうなって想像できて面白かったわ。ありがとうw
2018/04/07(土) 14:52:12.96ID:3aYyVZM2
Smalltalk = Windows 3.1 = D
2018/04/07(土) 16:15:24.12ID:Bd8sR+xj
オブジェクト指向言語でメンバ変数やメソッドをpublicにすべきかprivateにすべきかは
長年議論されてきてることだけど、中には

「privateで変数やメソッドを宣言するくらいならその部分をクラスにまとめて外に追い出してしまえばいい」
「洗練されたプログラムは変数・メソッドともにpublicだけで十分」

という意見もあるんだけどこれってどう思う?
962デフォルトの名無しさん
垢版 |
2018/04/07(土) 16:17:51.83ID:vVe4gpjb
pythonの方法は合理的
2018/04/07(土) 16:19:49.34ID:C4tJt4pN
> 「洗練されたプログラムは変数・メソッドともにpublicだけで十分」
洗練されて無くてもpublicだけで十分といえるので

「洗練されたプログラムである」という判断が別に必要になる
2018/04/07(土) 16:35:52.31ID:y0NHVjlZ
プロパティがあるならとりあえずpublicにしといたらいいんじゃない?
2018/04/07(土) 22:08:27.17ID:cSksy2F8
publicもprivateも両方とも有るのが良いよ
選択肢が無くなったり少なくなったりすると利用し難くなる事も有るし
使う人のレベルや理解度もまちまちなんだから
staticだらけでやる人がいても構わないし
どちらか一方になって片方が使えなくなる方がやだな
洗練されているかどうかは悦に浸っている人が勝手に浸かっていればいいし
2018/04/08(日) 06:20:36.36ID:02MXQevY
テセウスの船
2018/04/10(火) 20:37:32.93ID:sh2D9vF0
Tcl vs. Smalltalk

https://w3techs.com/technologies/comparison/pl-smalltalk,pl-tcl
2018/04/11(水) 03:06:46.30ID:AwbSOt+z
SmalltalkはTcl/Tk未満のゴミってことか…
オブジェクト指向の面汚しだな。死滅してくれて良かった
2018/04/11(水) 07:10:58.74ID:wpPEThCc
世のプログラム言語のほとんどがALGOL系といわれているがALGOLを使った事ない人がほとんどなのと同じじゃね?
2018/04/11(水) 07:18:41.53ID:/rBtvSvm
ちなみにSmalltalkが目指した遅延結合重視のメッセージングのオブジェクト指向は
C++で再定義され現在主流の抽象データ型のオブジェクト指向とはほぼ別物だから
アンチSmalltalkが「オブジェクト指向の面汚し」とか言ってもいまいち響かないよ
2018/04/11(水) 07:47:53.65ID:1hdMjitc
>>969
言語はもちろん、コンセプトも主流から外れちゃったって>>.970は言ってるよ
もう完全消滅だね
2018/04/11(水) 08:52:38.89ID:mEK/0CU7
そうなんだよすっかり主流から外れて久しいのにいまだにオブジェクト指向というと
メッセージを送るのがどうとか遅延結合がどうとか説明し出す自称識者が多くて困るよ
ほんと聞き手が混乱するだけだからやめてほしい

Smalltalkくらい遅延結合性を実践していればわからんでもないけどあれすら肝心のメッセージは非同期じゃないし
973デフォルトの名無しさん
垢版 |
2018/04/11(水) 12:24:17.61ID:bG1z7LTF
意外とWindowsのCOMが上手い実装だった
2018/04/11(水) 12:42:09.09ID:wKUnUTjT
>>972
Erlangのメッセージが本物
Smalltalkのは偽物
2018/04/11(水) 12:51:33.38ID:mEK/0CU7
ゲイツも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
2018/04/11(水) 12:53:12.46ID:mEK/0CU7
>>974
メッセージに関してはそうだろうね
ケイもAltoにもっとパワーがあったらErlangみたいなのを試したかったって言ってたし
ただシステム全体としての動的性に関してはErlangやそれで作られたものとは比較にならない
977デフォルトの名無しさん
垢版 |
2018/04/11(水) 12:57:13.75ID:bG1z7LTF
>>975
藤枝あほだな
2018/04/11(水) 14:26:33.25ID:J12WoVZ9
「クラスにメソッド送るシステムなんていまじゃ壊滅してる!
21世紀の現代の主流はC ++!」って5ちゃんねるで喚いてる人とか
そりゃ誰も相手したくねぇよw
2018/04/11(水) 15:19:48.90ID:mEK/0CU7
メッセージングのパラダイムを持ち出しておいて
メソッドとメッセージの区別すらついていない人がよくいるけどここにもいたかw

あと現在主流なのはクラスやそれに準ずるエンティティで抽象データ型を実現することで
その出自がC++というだけだよその程度の区別もつかないのか

たった2行の煽りでここまで致命的に間違えられるとかどんな才能だよ…
2018/04/11(水) 20:33:03.91ID:J12WoVZ9
はいはい、「俺の宗教の教義では俺の信じてるものは俺の神から、
俺の信じていないものは敵の神からもたらされたと決まっているから。」
いただきましたw
2018/04/11(水) 20:37:59.89ID:TKBXZkPL
敗北宣言wwww
2018/04/11(水) 21:16:38.37ID:W3CRQm5Z
>>979
まあまあ、しょせんSmalltalkのメッセージはニセモノの出来損ないなんだから
細かいことに目くじらたてるもんじゃ無いよ
2018/04/11(水) 21:41:58.27ID:wo4fmpFF
ほんとにメソッドとメッセージの区別がついていないらしい…
2018/04/11(水) 22:19:07.62ID:W3CRQm5Z
Erlangという本物を持ち出されてSmalltalkerサンぐうの音も出ないらしい
2018/04/11(水) 23:00:36.75ID:gmGjfvGU
Erlangはオブジェクト指向というよりメッセージ指向
2018/04/12(木) 13:59:17.22ID:LVEtcr4N
>>983
説明をどぞ
2018/04/12(木) 14:50:54.59ID:c5UYloeC
メソッドとニセモノのメッセージと本物のメッセージの3パターンで説明お願いね
988デフォルトの名無しさん
垢版 |
2018/04/12(木) 16:00:33.88ID:bfwDINZz
AngularJS
2018/04/12(木) 18:21:05.91ID:OewATdpF
メッセージはオブジェクトに送られる情報(多くの場合はエンティティ)
Smalltalk-72ではトークン列
Erlangなどではデータ列
Smalltalk-76以降はセレクター(多くは呼び出しが期待されるメソッド名)+引数(オブジェクト)
奇妙だけど他の言語でもSmalltalk-76以降に準じた解釈(メソッド名+引数)をそう称する場合が多い
一部の宗派でセレクター(メソッド名)のみをメッセージと称する場合もある(Objective-Cでよく見られる〕

メソッドはオブジェクトがメッセージを受けて行う操作
Smalltalk-72ではメッセージにパターンマッチする記述(リーダーマクロのようなもの)
Erlangには無いが、強いて当てはめればメッセージを受けたときの処理部分
Smalltalk-76以降ではクラスに属する関数がそれに当たる

もともと「メソッド」はメッセージを受け取った際に目指す状態である「ゴール」を記述する場とする予定だったが
Smalltalk-76でSimula-67スタイルのクラスとそれに内包される関数を用いる機構を採用したため
クラスに内包される関数とメソッドとの間に明確な差はなくなった

とか、とりあえずこんな感じで
2018/04/12(木) 18:40:29.87ID:+2RjvR+r
つまり、本当に非同期にメッセージパッシングしてるErlangは特別だけど、
Smalltalkのメッセージはメソッドコールと変わんないってことですね
2018/04/12(木) 21:28:54.61ID:pKim+X9U
メッセージがエンティティであることが重要で同期か非同期かは後付けでなんとかなる問題
たとえばIoなんかはそうなっているし、Concurrent Smalltalkという方向性もある

メソッドコールについてはさすがに静的に決定しているそれをメッセージと呼ぶのは滑稽だろう

動的メソッドコールについても例えば期待するメソッドが存在しない等で失敗したときに
メッセージを第一級オブジェクトとして参照可能な機構が組み込まれていないなどサポートを欠いていれば
その言語での動的コールをメッセージと称することはちょっと無理があるような
2018/04/12(木) 21:43:18.97ID:lUf8ZkQK
同期を非同期に変えるのに比べたら、静的なのを動的に変える方が簡単だし、後付けでどうとでなる問題だよ
2018/04/13(金) 09:04:27.08ID:QuE9cEqD
いずれにせよメッセージと称したい情報を必要なときにエンティティとして扱えるしくみがあればどうとでもできるよ
2018/04/13(金) 09:30:36.78ID:24eyc5OB
メッセージがメソッドコールだとしても、基底クラスに共通メソッドとして実装されているならそれはメッセージで間違いないだろ。
2018/04/13(金) 09:45:51.29ID:QuE9cEqD
メソッドコールと違いメッセージというからには送り手はその都合で情報を勝手に送りつけるわけだから
それを受け手がどう処理するかについて関知しないスタンスがとれなければさすがにダメだろう
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況