🚀

概念の依代としてのオブジェクト指向 世界編

に公開

概念の依代としてのオブジェクト指向」は、オブジェクトのアトミックな性質から導かれる性質がオブジェクト指向という概念の魅力の一つではないかと勝手に考えたという駄文であった。

要素還元主義 vs オブジェクト指向という捉え方をしたが、メッセージングについては取って付けたような言及であった。
ここでメッセージングとオブジェクトについて考えてみる。

オブジェクトと世界

なぜオブジェクトがメッセージでやりとりするというモデルなのだろうか。
まず、オブジェクトという個体を第一の根源として据えて考えた場合、オブジェクトとオブジェクトを取り巻く環境(世界)の二者に分けられそうだ。

この場合、オブジェクトの活動の軌跡として世界が出現すると考えるか、世界の中にオブジェクトが存在すると考えるかの二通りがありそうだが、世界との関わりというのをオブジェクトと世界の境界を越えてくるメッセージとして捉えてもよさそうだ。

オブジェクトの活動による世界への干渉は、世界へのメッセージ送信で、世界からの干渉はメッセージの受信と考えられる。
ここで重要なのは、オブジェクトは世界の存在を前提としなくてもよいという考え方が可能である点である。

最初に世界(環境)があって、次にオブジェクトがあって、メッセージングにより相互作用する、という還元主義的なオブジェクトの捉え方以外の考え方ではなく、オブジェクトがまず存在して、そこから世界を捉える。

思想でいうと20世紀初頭あたりにユクスキュルの環世界概念があったり、ハイデガーが荘子の処世という概念に触発されてその後の思想を展開したりと、似たような捉え方は沢山ある。

恐らくアラン・ケイがオブジェクトとオブジェクトの関係について考える場合に「間」という東洋思想の概念が有効であるというのも大体似たようなところだろう。「間」も「処世」も「世界=内=存在」も似たようなものだ。

この抽象性が、オブジェクト指向というものが、有象無象の思想を呼び寄せてくる理由ではないだろうか。

全体的な西洋思想の傾向

西洋思想というものが、二元論を絶対的なものと考えすぎていて、その弊害が色々なところで噴出しているように思える。
これを打破しようという考えが各種あるが、真理や普遍性というツールが便利過ぎるので、二元論を捨てるというのは現実的ではない。

普遍性と真理

数学のようなものが示すようにある体系の元では普遍性も真理も厳然として存在する。
普遍性と真理というのは、人類の発見の最大級のものに思える。
ただ、普遍性と真理で全てを説明できるかという挑戦は失敗に終ったのではないだろうか。

オブジェクトと存在論

後期ハイデガー哲学などでは、存在というものは生成してくるものという捉え方をしている。最終的には存在という考え方自体旧来の考えの枠にあるものとして破棄されるが、オブジェクトが先にあり世界はそこから生成されてくるという考え方と相性がいい。

世界がまずあるという西洋の二元論に違和感を感じている人達が色々な時代で色々と考えているが、世界がありきで個別の存在は世界の構成要素の一つに過ぎない、という考え方への異議である。

建築思想とオブジェクト指向

オブジェクト指向界隈で、アレグザンダーの建築思想が持て囃されるのは何故だろうか。
トップダウンに世界を捉えて建築を設計するのではなく、人々(オブジェクト)の生活が生成していく世界に寄り添うような建築思想ということだと、オブジェクト指向と相性がよさそうではある。

モノとコト

普遍性や真理は道具であるので、モノとコトでいうとどこまで行ってもモノでしかない。
「人生の意味」のようなコトは、どこを引っくり返しても出てこないというのはよく言われるとおりである。

コトというのは、オブジェクトが活動することであると捉えると、わりとすっきりする。
つまり「人生の意味」探求とはオブジェクトが生きることで発生する内省の一様式で、世界をトップダウンに考えて人生を措定してみた、ということである。モノを細分化してもコトは出てこないが、コトがなければ、モノを細分化しようという活動もないので、敢えてコトとモノを合体させるなら「人生に意味はない」か「人生の意味とは生きること」になる。

モノとコトの関係のいいとこ取り

二元論的な考え方でモノを操作していてもコトが出てくると行き詰まってしまうが、それでも二元論はツールとして便利である。
メタという考え方は、モノを考えるのにレイヤーを導入し、コト的なものは上層に分離するという戦略に思える。
リフレクションやメタプログラミングというものは、動的に生成してくる世界を如何に静的に操作するかという手法と考えると二元論的思想の拡張ともいえる。

「人生の意味」を考える方法に適用するなら、真理で構成できるものは物理的に考え、それ以外はメタ世界に分離するようなものだろう。分離して問題が解決した気になる人もいるし、ならない人もいる。

プログラミング(シミュレーション)の特異性

プログラミングというものは、数学と同じく、普遍性と真理の世界のものであるが、作者が創造した世界を動かして体験できるという点では特異な存在である。
つまりモノを高度に組合せていった結果コトをシミュレーションして体験できるまでになった。

あらゆる思想体系も結局のところモノを組合せることしかできないが、人間の能力を越えた機械を活用することにより、モノをがコトのように振る舞うことが可能になってきた。
つまり哲学や思想はシミュレーションで動かして体験することが可能になってきたということであり、あらゆる思想体系がプログラミング(シミュレーション)の周辺に集りつつあるのは必然ではないだろうか。

Lispの特異性

静的に記述したモノを実行することにより、コトをシミュレーションするというプログラミングであったが、対話的プログラミング言語により、フライトシュミレーターのようにプログラマがプログラムを体験できるようになった。
コードとデータの世界、メタとベタが陰陽のように渾然一体となるLispはこの点において一つの発明だったのではないだろうか。
一つ面白いのは、渾然一体となった世界観に甘んずるのが嫌いな人は常に一定数いるらしいところで、世界をメタに多段に分割してみたり、メタ情報を埋め込んでみたりと二元論的な分割統治の余地の探求は続いている。

むすび

哲学のような思惟行為もプログラミングにより動かして体験できるようになり、さらにはシミュレーションした世界からLisp的超循環で対話的にフィードバックを受けつつ思索を深めることが可能になってくると思う。
モノが高度なシミュレーションによりコト化していく、とも考えられるし、所詮すべての思惟活動は個々のオブジェクトの妄想だとも考えられる。

Discussion