- 生きてゐるオブジェクトとは何か.
- 「生きてゐるオブジェクト」と呼べるようなものがあるとして, それはどのようなものか, どのような環境に棲息しているのか, を考えてみる.
- とりあえず Java のようなプログラミング言語でいう「オブジェクト」には, この論考では触れない.
- まず前提として, 「生きてゐる」かどうかはバイナリな性質ではないとする. 辛うじて生きていると言ってもいいのではないかという代物から, これはどこからどう見ても生きているでしょうというものまで, いろいろな「生きてゐる」があるだろうということだ.
- オブジェクトとは, 他のオブジェクト (や場合によっては環境, ひとなど) からの刺激 (= stimulus, メッセージ) に (選択的に) 反応し, 自ら何かを計算し, その過程や結果としてまた他のオブジェクト (や場合によっては環境, ひとなど) に刺激を与えるものであるとする.
- オブジェクトはソフトウェアでなくてもいいのだが, ここではとりあえずソフトウェアで作られたオブジェクトを考えよう.
- 大昔, オブジェクトは, 生きていると言っても, せいぜいある (OS の) プロセス (ないしスレッド) とそのメモリ空間の上で, 何らかのアプリケーションが実行されている間のみ生きているものだった.
- 今, 普通に想像し得る生きてゐるオブジェクトは
- 惑星規模のネットワーク空間上に存在し,
- アプリケーションやサービスなどよりも長い寿命を持ち,
- 「データ」(状態) をそのオブジェクトの外部にある「データベース」と名付けられるような外的存在にではなく, 自分自身に持つ
- ようなものであってほしい.
- そしてさらに, オブジェクトは「現実」世界の何かと何らかの「擬因果関係」を持つものであってほしい.
- 「現実世界」が何かは難しい問題だが, とりあえずは今あなたが頭に思い浮かべた「それ」です
- 「擬因果関係」とは, 現実世界の何かが変われば対応するオブジェクトが変わり, オブジェクトが変われば対応する現実世界の何かが変わるような, 「真の」因果関係であるかどうかは措いて, 一見因果関係のように見える (誰にとって? 「我々」にとって!) 関係である
- 「何か」が何であるかは, 考えている文脈によって異なるだろう. 例えばひとの identity とか, 環境や機械の何かの測度とか
- そのような生きてゐるオブジェクトが棲息可能な圏はあるだろうか?
- 以下は, 今まで歴史的に存在した生きてゐるオブジェクト棲息圏の可能性の追求の痕跡の不完全な一覧である.
- これらの中には, 完全に姿を消してしまった技術もあるし, 形を変えながら生きながらえている技術もある.
- さて, では, 今, 生きてゐるオブジェクトを生かしめるような, どんな環境を我々が考えればいいのだろうか?
- その有力な候補の一つが,ブロックチェイン上の Dapp (Distributed application, Smart Contracts) であると考えている. 特に Dfinity という組織が開発している (その名も:-) The Internet Computer (= IC) はある程度そのことを自覚していると思われる (特に彼らが開発している Dapp プログラミング言語 motoko). もちろん, いわゆるブロックチェイン技術が標榜する DeFi, DAO, NFT (の金融的応用) などはこの論考の埒外である.
- 生きてゐるオブジェクトの棲息圏として, ブロックチェイン技術は too much ではないかという指摘は当たっている面もあるだろう. では IPFS, SOLID, 何とかメッシュのような分散技術で良いか, というとそれはそれで too little ではないかとも思われる.
- もちろん, IC が最終解答になり, 生きてゐるオブジェクトの棲息圏として普及する, とも思わない. まだ数世代の試行錯誤が繰り返されることだろう.
- とは言え, めでたいことに目の前にそのような玩具が転がっているとしたら, いくら浮かれものが騒いでいるからと言って, それに手を出さぬという選択はなかろう.
- と言うのが, 私が IC/motoko でフィージビリティ・スタディのためのプロトタイピングをしていることへの言い訳なのである. 確かめたいことは
- 生きてゐるオブジェクトにとって, web3 の余計なものは何か, 不足なものは何か
- 言葉を換えれば, 生きてゐるオブジェクトにとって本当に必要な環境はどういう性質を持たねばならぬか
- 生きてゐるオブジェクトによる, 組織プログラミングは可能か
- そもそも生きてゐるオブジェクトはなくてはならぬものなのか. なぜか