generated at
OOPのmessage
ObjectとObject同士のやりとり
あるObjectが、別のObjectのmethodを呼ぶことを通信に見立ててこう呼ぶ界隈がある

SmalltalkOOPはmessage指向


Object自体を一つのコンピュータと捉えて、メッセージ通信する感じ
methodを呼ぶことで、インスタンスに対してrequestを送り、
インスタンスはresponseとして返り値を返す
このやり取りを「message」と呼んでいる
RESTとのアナロジーで考えればわかりやすい
get系のmethodならPOSTで、set系のmethodならGET, UPDATEみがある
雑なアナロジーだがmrsekut
自分のobjectに送るものを内部メッセージ、他のobjectへ送るものを外部メッセージと言ったりする
外部メッセージとカプセル化が近しい概念だということも想像できてきた


上のような解釈で、さらにSmalltalkではこのメッセージは非同期でやり取りできる
だから「メッセージ」だった
その後、同期的なモデルに切り替えたが、用語としては「メッセージ」を使い続けているので誤解生じがち、とのことらしい



関数と(外部)メッセージは、命令と依頼の違い
関数は、命令をする
メッセージはobjectに対して処理を依頼する
言っていることはわかるが、これを知ったからといって何の差が出るんだ?
OOのノリがわかるのか。
class設計に多少貢献はしそう



Elixirにも「メッセージ」という概念が出てきた記憶がある
あれは別物なのか、だいたい同じ意味7日 #??
Elixir/Erlangが最もOOである



参考
メッセージについて