RPCが良い理由
圏論バイアスによる発言ではあるが、RPCが他の方法に比べて格段に優れているのは、圏論との相性が良いからだ。
手続きや状態のキー化(コード化)やマーシャリングは、部分デカルト閉構造で記述できる。同じ圏に複数の部分デカルト閉構造が載るのだが(それは普通)、それぞれから部分デカルト閉圏を作って、部分デカルト閉圏としての圏同値を与える関手や自然同型を考える。これがおよそRPC(より一般にxPC)の定式化になる。
遠隔呼び出しに関して言えば、ローカル圏とリモート圏(あるいはクライアント圏とサーバー圏)のあいだの関手を与えればいいのだが、一緒に自然同型が必要で、この自然同型(成分が同型射である自然変換)を与えるメカニズムがRPCの個別具体的な方式に対応する。RPC方式は自然変換なので、縦結合と横結合が可能となる(2-圏)。また、RPC方式の比較には3-セルが使える。
こういうことが自由に出来るってことはとんでもなく気持ちがいい。他の方式がとんでもなく気持ちが悪いのは、圏論的自由がほとんどないからだろう。僕としては手足をもがれた*1ような状態だ。やっぱり耐えられるはずがない。