視覚を持つ非同期オブジェクト
今日バイクの上で考えたこと:
オブジェクトとかアクターとかだと、メッセージは宛先を持つ。dog bark
はdog
にたいしてbark
ってメッセージを送る。そしてメッセージは普通盗聴できない。
僕らの世界ではメッセージは宛先を持たない。車がブレーキランプを点灯させる時、その車は後ろの車について何も知らないし、当然参照も持っていない。後ろの車のドライバーは眼に見えている景色を解釈して、前の車が減速していると結論づけて、自分もブレーキを踏む。
1対1の会話の場合も、第三者が盗み聞きして割り込めるから宛先はない。
個々の生き物は視界と、視界の中で起きたことを解釈する能力を持っていて、コミュニケーションは非同期に行われる。
[追記] デモ作りました。 http://jsfiddle.net/CAjem/2/
gist:
Pull-based Async Objects -- Demo
各車は、実体と見た目を持っていて、後ろの車は前の車の見た目にアクセス出来る。 アクターは、メッセージを送る相手のメールボックスにメッセージを突っ込むプッシュ型。対してこの車はそれぞれが目に見える情報を元に勝手に行動する。
車同士でメッセージのやりとりは一切なくて、道全体の車の位置を管理する関数もないところがユニーク。