第17回 「客観性のフォークと主観性のフォーク」
本来、本はただ読まれるだけではなく、読む人の脳内で新たな考えの生成を引き起こし、それを読み手が新たに文章にすることで、表現の連鎖が生まれてきました。その基本形は石版に象形文字が刻まれていた太古の昔からスマホのディスプレイでニュース記事やTweetを読む現代に至るまで脈々と続いてきたものです。そしてこの連載ではこれまで、読む人の主観的な意味解釈の生成にこそフォーカスを当てることで、読む行為と書く行為を接続しようとしてきました。
インターネットおよびWorld Wide Webがこの形態に革命的な変化をもたらしたのは、読む場所が同時に書く素材を内包していたからです。たとえばこの文章のようなHTMLファイルはブラウザによってレンダリングされ、整形された形で読者に提示されますが、それをPCやスマホの操作でそのままコピーすることができますし、さらにPCであれば右クリックをしてソースコードを表示することができます。つまり文章の内容だけではなく、文章のレイアウトや文字組といった表現形までをもコピーして自身の環境にペーストして改変したりすることができます。この基本構造によって、文字を筆で写したり、印刷や複製したりといったことよりも遥かに高速にお互いの文章を素材として使えるようになりました。
しかし、「コピーする」こと以上に読み手を書き手のレベルに押し上げた技術がWikiです。以下はWikiを開発したワード・カニンガムによる説明図です。
このビジョンでは、それまでは情報が掲示されていた「壁」がWikiによってドアになり、読み手(readers)が書き手(authors)に成ることができるということが示されています。また、Wikiでは特定の用語に記事リンクを貼ることで、誰でも編集可能な記事ページが生成されますし、全ての記事がユーザーによって編集可能な形で提示されています。
しかし、Wikiはある同一の内容を全員で編集するという志向性を持ちます。それは百科事典の記事のような「あるべき姿」のビジョンがある程度共有されうる場では効果を発揮しますが、小説や論考を書き上げるというような「正解が一つではない」ケースや多様性に価値が生じる場合ではうまく機能しません。だからWikiにおいては個々の作品は最終的に一つのバージョンに収斂していくことが目的なのだと言えます。
これとは異なる構造を持つ仕組みが分散バージョン管理システムです。これはソフトウェアの開発プロセスの中で生まれたもので、通常は一つのプログラムを複数人で書き上げる過程を支援する仕組みですが、同時に別のバージョンを簡単に派生させることも可能にしています。例えば、一緒にプログラムを書いてきたメンバーが異なるゴールのイメージを抱いた時、自分流のバージョンを本流から枝分かれして発展させていくことができます。
本来、フリーソフトウェアやオープンソースソフトウェアでは、こうした分岐(フォーク、Fork)は、それ自体が特に望ましいものとしては考えられてきませんでした。なぜなら、それは多くの場合、プロジェクトのメンバーの対立に起因した分派を意味するからです。しかし、権利がオープンにされているがために、必要があればフォークされる可能性があるという事自体は、大局的に見たときには健全な新陳代謝をもたらす機構として見て取ることができます。
GitHubは、現代で最も支持されている分散バージョン管理システムであるGitをWebに持ち込むことによって、コーディングの協業可能性を可視化しているサービスです。GitHubではソーシャル・コーディングという概念をもって、フォークという用語に新しい価値を付与しました。GitHubに置かれているオープンなプロジェクトのソースコードが掲示されているページ(レポジトリ)には「Fork」ボタンが置かれており、ユーザーはそれをクリックするだけで他者のコードを自分のレポジトリとしてクローンすることができます。また、プロジェクトを紹介するウェブページを別途展開しているユーザーのためには「Fork me」というバナーを公式に提供しています。この「Fork me」で期待されていることは、ユーザー同士がより積極的にお互いのプログラムをクローンし、すぐに変更や追加を加えられるようにすることで、より質の高いプログラムが生まれて、プログラマー同士のコラボレーションが育まれることと言えます。
注意するべきは、GitHubのフォークには、オープンソースにおける原初のフォークとは異なり、共通の目的のために協働するといういわばWiki的なビジョンが含意されていることですが、それと同時にWikiと根本的に異なるのは、フォークされたコードはいつでも異なるバージョンとして別の目的やゴールを持つものとして分岐することも許容されている点です。つまり、ゴールを共有している人同士では普通に協働できるけど、違うゴールのために分岐しても良いということです。
ここでいう同一のゴールの共有のためには、客観的な指標がメンバー間で必要となります。Wikiの記事でいえば「より正確さに優れている」「より質の高い参照文献に基づいている」、コードでいえば「よりバグが少ない」「より効率のよい処理で記述されている」などが客観的な指標といえるでしょう。
他方で、異なるゴールへの分岐ということは、それがより高次の客観性から判断されたとフォークする人が思っていたとしても、その判断の是非はフォーク元とフォーク先で共有されるのが難しいでしょう。Wikiの記事でいえば、たとえば世界史に関する記事の中に日本人、フランス人、中国人の観点を混在させたら、視点の定まらない支離滅裂な記事になってしまうでしょう。プログラムでも、たとえば同じ画像処理の基幹技術をゲームの分野で活用するのか、もしくはレシピサイトのために使うのかで向かう先が異なっていくので、あるところまでは協働できても、途中で別の道を歩まざるを得なくなるでしょう。重要なのは、いずれの場合にも超越的で唯一の「正解」が客観的に定義できないということです。
このように同一の客観性の基準に収斂させることが難しい表現は、それぞれが異なる文脈から発していたり、異なる経路に依存しているといえます。それはいわば異なる主観同士が並行して存在するような状態のイメージです。これまでのWikiからGitへ至るフォークという技術的進展が客観的なゴールのための協働を支援してきたとすれば、これからのフォークは主観同士の相違と相同が接続されるコミュニケーションのためにこそ活用されるべきではないかと、筆者としては考えています。
合理的な目的論ではなく、直感的なアナロジーの連鎖を強調するということは、より自然な、身体的なコミュニケーションを、インターネットを介して社会的な次元に実装するという意味を持つでしょう。
[読むことは書くこと Reading is Writing:第17回 了]
読むことは書くこと Reading is Writing:第17回「客観性のフォークと主観性のフォーク」 by ドミニク・チェン is licensed under a Creative Commons 表示 2.1 日本 License.
COMMENTSこの記事に対するコメント