玩式草子─ソフトウェアとたわむれる日々

第36回プロジェクトの分岐と智のゲーム

最近、授業の準備で調べものをしていると、⁠協力してHTML5の規格を策定していたW3CとWHATWGが、異なる路線を歩むことになった」旨のニュースを目にしました。

この手の「分岐」は、ソースコードが公開され、プロジェクトへの参加が誰にでも開かれているオープンソースソフトウェア(OSS)の世界ではよく見られる現象ですが、それがHTML5といった重要な規格の世界でも生じているのを見ると、OSS的な活動原理が、ウェブを用いたビジネスの世界の根幹にまで影響を及ぼすようになってきたのだなぁ、という印象を強く受けました。

そこで今回は「プロジェクトの分岐」という現象を、以前紹介したことのある「智のゲーム」という視点から考えてみることにしましょう。

HTML5とW3C,WHATWG

まずはじめにHTML5を巡る歴史的な流れを紹介しておきましょう。HTML5は、1999年の公開以来、広く利用されているHTML4.01に取って代わる予定の新しいHTMLの規格です。

図1 W3CによるHTML5のページ
図1 W3CによるHTML5のページ

HTML5は2014年の公開を目指して現在も策定作業が進んでいますが、その始まりは必ずしもスムーズではありませんでした。というのも、HTMLの規格を定めているW3Cは,HTMLの規格は4.01で終了として、以後はHTMLをXMLで定義し直したXHTMLの規格作りに傾注していたからです。

XHTMLはXMLを用いて記述されたHTMLで、従来のHTMLよりも文書の構造等を正確に表現することができ、WWWの発明者であり、W3Cを率いているティム・バーナーズ=リーが提唱するセマンティック・ウェブにも適用しやすいため、W3CはHTMLに代わる規格としてXHTMLを推進していました。

W3CはHTMLからXHTMLへの移行を進めるために、XHTML1.0ではHTML4.01の規格をそのまま再定義し、XHTML1.1でもXMLの特徴を活かして機能のモジュール化を進めた程度で、ウェブページに新しい機能を追加するような変更は行ないませんでした。

一方、WWWを日々の仕事に利用しているウェブサイトのデザイナやブラウザソフトウェアの開発者たちは、WWWに求められる役割が増えるにつれ、HTML4.01で定義されている機能だけでは不十分に感じていました。彼らにとっては、HTMLからXHTMLへの移行を進めるW3Cの動きは緩慢で、差し迫った問題を解決する手助けになりません。そこで、ブラウザソフトウェアの開発元であるApple、Mozilla Foundation、Opera Softwareの技術者たちが立ちあげたのがWHATWGです。

図2 WHATWGのホームページ
図2 WHATWGのホームページ

WHATWGでは、公開メーリングリストでの議論を踏まえながら、ウェブページにHTML4.01では定義されていなかった機能を追加するためのWeb Forms 2.0Web Applications 1.0などの規格を提案し、支持者を増やしていきました。

このようなWHATWGの動きに対して、W3Cも「ウェブページに現在求められている機能を」という声を無視することができなくなり、従来の「HTMLは廃止してXHTMLを推進する」という方針を撤回して、WHATWGが提案している規格をHTML5として採用することを決めました。それに伴ない、XHTMLの新版の策定作業は中止し、HTML5の策定に向けた作業をWHATWGと協働で進めることになりました。

W3Cは会費さえ払えば誰でも会員になることができ、会員はワーキンググループへの参加を通じて標準規格の策定に関われることになっています。そのためWHATWGのような活動はW3Cの中から起こすことも可能だったはずです。

しかし、WHATWGの中心メンバーたちは、そのような内側からの活動だけではHTMLを廃してXHTMLを推進するというW3Cの方針を変えることができないと考え、WHATWGという別の組織を作ってそこに人々の注目や支持を集めることで、外からW3Cを動かすことに成功したのでした。

この事例は、生み出した「智」⁠ここでは「新しい規格⁠⁠)が多くの人々に認められることで、その「智」を生み出した人々の影響力が強まり、ついには本来の開発元もそれを認めざるを得なくなる、という「智のゲーム」の典型的な例と言えるでしょう。

最初にも紹介したように、この協働関係はHTML5が正式な規格として決定する前に終了し、今後WHATWGは"living standard"としてHTML5に最新技術を追加していく作業を続け、W3Cはそれらを追認する形でWWWの標準規格を策定することになるそうですが、WHATWG的には「当初の目的は果したので、後の面倒な手続きはW3Cの方で頑張って」といったところなのでしょう。

GCCとEGCS

前節で紹介したHTML5の歴史は、古くからのLinuxユーザには既視感を感じさせるものだったかも知れません。というのも、GNUプロジェクトを代表するソフトウェアであるGCC(GNU C Compiler/GNU Compiler Collection)にも似たような歴史があるからです。

1987年に最初のバージョンが公開されたGCCは、ソースコードが公開され、ANSI-Cの規格に対応したCコンパイラとして広く利用されてきました。GCCが無ければLinuxのカーネルが開発されることもなかったでしょうし、フリーソフトウェア運動がここまで広まることも無かったでしょう。

このようにGCCはフリーソフトウェアの世界で極めて重要な地位を占めてきたソフトウェアですが、その発展過程は必ずしも平穏なものではなく、1997年前後に重大な危機を迎えたことがありました。

当時、Linuxが急速に普及していくにつれ、GCCに対するニーズも急速に増大していました。GCCを新しいCPUに移植しようとする人々もいましたし、C++に新しく採用された機能をGCCに取り込もうとする人々もいました。また、当時最も普及していたPentium CPUに合わせて、より最適化した機械語を出力するように改造しようとする人々もいました。

これらの新機能はソースコードに対するパッチとして開発元に送られていましたが、当時のGCCの開発者たちはコンパイラを安定化することを最重視して、これら新機能の採用には消極的でした。

そのようなGCCの開発者たちに対して、新機能を積極的に利用したい人々が立ちあげたのがEGCS(Experimental/Enhanced GNU Compiler System)プロジェクトです。

EGCSプロジェクトでは、当時開発途中だったGCC-2.8のソースコードを元に、開発過程をオープンにして(当時のGCCの開発過程は非公開でした⁠⁠、GCCでは採用されなかった新機能を積極的に採用しながら開発を進めていきました。そして1997/12にEGCS-1.0を公開し、以後は2、3ヵ月に一度のペースでバージョンアップを繰り返しながら、支持者を増やしていきました。

一時、GCCとEGCSの間でC++用のライブラリ(libstdc++)の互換性に問題が生じたり、コンパイラの表示するバージョン番号が混乱する等の騒動もありましたが、最終的にはGNUプロジェクトを運営しているFree Software FoundationもEGCSを認め、EGCSをGNUの公式のプロジェクトとして認定して「GCC」の名前を譲ると共に、従来のGCCの開発チームは解散して、EGCSの開発者たちに以後のGCCの開発を委ねました。

その後のGCCは、年に一度程度のメジャーバージョンアップとバグフィックスのためのマイナーバージョンアップを繰り返しながら発展を続け、最新版はGCC-4.7.1に達しています。

図3 GCCのホームページ
図3 GCCのホームページ

ちなみに図3はGCCのホームページのスナップショットですが、右上にある「卵の殻を突き破っているGNU」のロゴは、元々EGCSプロジェクトが採用していた、EGCS(エッグス)と卵(egg)を掛け言葉にしたロゴで、EGCSが旧GCCに置き替わったことを示すように、GCCプロジェクトのロゴとして利用されています。

このGCCとEGCSの歴史も、元々の開発者たちとは異なる考え方を持った人々が、新しい「智」⁠この例ではより優れたソフトウェア)を生み出し広めることでユーザの支持を集め、その影響力を背景に本来の開発元に開発方針の変更を認めさせた例と言えるでしょう。

分岐と「智のゲーム」

HTML5やGCCの例のように、分岐して生まれたプロジェクトが元のプロジェクトの方針を変更させたり、元のプロジェクトに取って代ってしまうような例はそれほど多くありませんが、分岐した2つのプロジェクトが相互に競い合いながら成長を続けている例は枚挙にいとまがありません。

フリーソフトウェアを代表するもうひとつのソフトウェアであるEmacsにもXEmacsと言う亜種がありますし、最近の大物では、Sunと共にOracleに買収されたOpenOffice.orgをよしとせずにボランティアの開発者たちが独立して生みだしたLibreOfficeや開発方針を巡ってffmpegプロジェクトから分岐したlibavプロジェクトなどがあります。また、glibcの組み込み用CPUへの対応の悪さから生まれたeglibcプロジェクトも、広くユーザの支持を集めつつある例と言えるでしょう。

従来、プロジェクトの分岐は、開発者リソース(実際に開発に参加する人々だけではなくそのソフトウェアを使うユーザグループも含む)を分散させてしまうのでよくないことだ、と考えられていました。しかし、プロジェクトが分岐することにより、それぞれの開発者たちが刺激されて、プロジェクトが活発化する例もしばしば見られます。

このような過程は智のゲームという視点から考えると捉えやすいでしょう。⁠智のゲーム」において各プレイヤーは、誰でも自由に利用できる「智」⁠たとえばソフトウェア)を生み出し、広く普及させることを目指します。そうすることで、自らの支持者を増やし、評価を高め、影響力を強めることができるからです。

OSS開発のような営利を目的としない活動では、他者を動かすには、力による脅迫富による買収ではなく、目指すべき理想への誘導や論理的な説得が必須となります。その際に重要な役割を果すのが、その人が今までに生み出してきた「智」によって得られる影響力です。StallmanやLinusの言葉が、我々凡百のユーザの発言よりも重みを持つのは、まさに彼らが今までに生み出してきた「智」を、人々が広く認めているからに他なりません。

最初に紹介したW3CとWHATWGの関係も、⁠智のゲーム」という視点で見ると、ウェブページに新しい機能を与えるための新規格という「智」を提案することでWHATWGが得た影響力が、XHTMLを推進しようとするW3Cの影響力を上回り、その結果としてW3Cが従来の方針を撤回するように動かされた、と言うことができるでしょう。

もっとも、W3CにはWWWをビジネスにしている企業が会員として多数参加しており、彼らの間の利害を調整するのは「智のゲーム」だけではなく「富のゲーム」の観点も必要になるでしょう。そのような面倒な調整を嫌ってWHATWGがW3Cとの協働作業から身を引いたのだとすると、HTML5の規格が確定するまでにまだしばらくの紆余曲折があるかも知れません。

おすすめ記事

記事・ニュース一覧