Sunによるソースコードの公開から1年――Javaコミュニティの動向

 Sun MicrosystemsからJavaのソースコードが公開されてから1年が過ぎたが、その後の経過はどのようなものだろうか? エンドユーザにこうした質問をしたとしても戸惑わせるだけだろうが、フリーJavaコミュニティの中枢部で活動している開発者であれば、1年経った現在も開発活動の見直しに忙殺されているコミュニティの現状をつぶさに語ってくれるに違いない。

 Sunによるこの件がアナウンスされたのは2006年11月13日のことであるが、それ以前から活動していた各種のフリーJava系プロジェクトは、OpenJDKコミュニティに合流するか、あるいは独自の代替コード開発活動を継続するかの選択を迫られることになったが、いずれにせよ彼らの眼前には膨大な量のソースコードが公開されたのである。一方のSun内部においても、より大きな外部コミュニティとの交流チャンネルが形成されたことにより、Java系エンジニアが既存プロセスの見直しを進めるようになっている。現状で確認できる問題点としてはOpenJDKという組織の運営や負の遺産と化した既存コードの整理などが存在するし、またネットワークを検索すれば各種の批判意見が見つかるはずだが、Javaの開発に携わる人々の間では楽観的なムードが満ちているように感じられる。

 隔世の感があるとはこのことだろうか。Sunに対するJavaコードの公開を求める要望は何年もの間コミュニティ側から出され続けていたが、いざ最終的にSunがコード公開に踏み切ると、その発表は慎重な態度で受け取られ、それは一部のコード公開だけに留められたという点で特に顕著だった。こうしたコミュニティ側の雰囲気が形成された原因の一部は、2007年2月に開催されたFree and Open Source Software Developers’ European Meetingにてコミュニティの開発者とSunの技術者が最初に対面した際の出来事にあるだろう。SunにてJavaチーフエンジニアを務めるMark Reinhold氏は、コミュニティ側が歩み寄りの姿勢に偏り始めたのは、残存コードの大部分が公開されたその6カ月後のJavaOneコンファレンス頃であったと見ている。

 Reinhold氏によると、それ以前にOpenOffice.orgやOpenSolarisなどに向けてSunがソースコードの公開をしていたことが、今回の緊張をある程度緩和していたはずだということになる。「こちらもOpenSolarisの関係者からは、多くのことを学ぶことができました」とReinhold氏は語る。また同氏は、SunがJavaコードの一部を未公開にしておく口実に過ぎないと誹られたJava Research Licenseについても、今にして思えばこれが一種のリハーサルとして機能し、Sun内部のスタッフが外部の人間との交流法を学ぶよい機会になったとしている。

変革に伴う苦しみ

 Reinhold氏は、この1年間におけるコミュニティの全体的な変化はごく限られたものでしかないとし、コミュニティにはコードのオープン化に関する長年の経験やコード開発に関する高いレベルの技術があるので、その程度で収まっているのは当然であろうとしている。

 1つの例外はJavaモバイル/組み込みデバイスに携わるコミュニティで、これは先のアナウンスが出された当日に結成されたものである。SunのテクニカルエバンジェリストであるTerrence Barr氏は、同コミュニティには1年間で500名の貢献者が登録され、その開発成果に注目している人間はより多数に上るとしている。「私どもの決断は外部にいる多くの開発者の興味を引いたようです」とBarr氏は語る。「(この主の活動は)業界内の他の分野では見られないものであり、そうした出来事に貢献できたことを喜ばしく感じています」

 その一方で大幅な環境の変化に曝されることになったのが、従来のリバースエンジニアリングによるフリーなJavaの実装を目指してきた開発者達である。これらの人々についても、Sun Contributor Agreementには同意できないなどの個人的な理由からOpenJDKへの参加を拒む者もいれば、状況の変化を積極的に受け入れようとする者など様々だ。このOpenJDKという暫定的な管理機構に参加した1人に、有力なフリーのJava実行環境の1つであるKaffeの主任開発者を務めるDalibor Topic氏がいる。

 また一部でその存在意義の喪失が懸念されていたGNU Classpathについては、現在も主要なJavaプロジェクトの1つとして活動を継続中であり、Sunが未公開化している部分に対する多くの代替コードおよびSunの商用Javaコードに一部置き換え可能な小型コードを提供している。

 Classpathの開発者であるMichael Koch氏の説明するところでは、古き伝統を持つClasspathのコミュニティこそが、今ではSunにとっての最も有力な支援者であり助言者の1つとなっているとのことだ。「Sunはオープンソース関連の事柄について、Classpathの人間に多くの相談をもちかけてきますよ」とKoch氏は語る。

 こうした環境の変化への対応を迫られているのは、Sun内部の開発者についても同様である。「これはSimon Phipps氏(Sunのオープンソース責任者)がよく口にしていることですが、過去にプロプライエタリ製品の開発チームを社内にて整備してきた後でオープンソース型の開発形態に移行するといった場合に、“これからは社外の開発コミュニティ育成に力を入れて、その後で適切な交流体制確立の道を模索しましょう”というのは正しいモデルではないのです」とReinhold氏は語る。

 「正しい方向性としては、クローズド方式で活動してきた開発チームが存在している以上、それこそがオリジナルのコミュニティであると考えるべきです。そしてこうした内部コミュニティを拡張する際に行う必要があるのは、参加を求めてくる外部コミュニティとの橋渡しの方法を構築して、社外で活動してきた人間に対して技術的な規格やプロセスについての標準を提示することであり、同時に開発チーム側でもオープンで透明性のある活動体制に改めることで互いの協力を得やすくしなければなりません。要は、既に存在しているものを有効に活用して、よりいっそうの成長を促すことです」

 この意見に同意しているのが、先のTopic氏である。「(当方で抱えている)問題の本質は、不可欠なインフラストラクチャをSunが内部に抱えていることに関連しており、これをいったん解消して、Sunおよび外部コミュニティでJDKに携わっている双方の開発者が利用できるものに置き換えなければなりません。とは言うものの、これほど大規模なプロジェクトとなると、かなりの時間をかけないと遺漏なく行うのは無理でしょう。スイッチを1つ切り替えれば済むという話ではありませんからね」

クリティカルな問題

 Javaコミュニティが現在抱えている最大の懸念は、組織運営に関する問題である。暫定的な管理組織が正式に発足したのは、同コミュニティ立ち上げから6カ月後のJavaOneが開催されるまで待たされることになり、その後の活動はコミュニティ憲章として位置付けられる基本原則の確立に費やされてきた。この種の活動はどうしても時間のかかる性質のものであり、それは例えば、コミュニティへの貢献者は個人の立場で参加していると見なすのか特定のプロジェクトや企業の代表と見なすのかなどを協議に諮った上で、コミュニティにその賛否を問わなくてはならないからだ。実際、予想以上に長期化したこの種の活動にコミュニティメンバの多くは不満を憶え、暫定管理組織の有効性に対する疑問の声につながっている。

 「現状においてSunは、OpenJDKにおける慈悲深い独裁者とでも言うべき立場にありますが、これまでのところ妥当な範囲内での不干渉主義も貫いています」とReinhold氏は語る。またその性質上、コミュニティ憲章の作成は不確実さを取り払えない問題ではあるが、既にいくつかの新規サブプロジェクトが立ち上がってもおり、Reinhold氏も「年末までには憲章の草案が完成されるかもしれないという希望を捨て去った訳ではありません」としている。

 少し視点を変えてテクニカル面での問題を考えてみると、Sunから第三者にライセンスを提供済みであったり、既得資産の著作権保護といった理由で公開できない一部コードの存在が大きな課題として立ちはだかっている。BarrおよびReinholdの両氏は、この種の理由から公開できない部分はJavaコード全体の4から5%に過ぎないと推定しているが、それは25万行ものコードに相当する分量である。

 公開済みのコードは様々な用途をカバーする内容ではあるのだが、未公開コードについては中枢機能を担っているものが多い。例えばIcedTeaの主任開発者を務めるThomas Fitzsimmons氏へのインタビューがFedoraのプロジェクトwikiに掲載されているが、そこでの説明によると同氏の参加するプロジェクトは、フォントおよびグラフィックス用ラスタライザ、カラーやサウンドの管理、プラグインのサポートなどの機能的な欠落分を補完することを目的として設立されたものだとのことである。

 このように未公開分を埋めるための努力は各所で継続されているものの、現状で不完全であることは否めない。そしてこうした状況が、Java関係者に対して不誠実な態度であると糾弾したり約束の不履行であるという非難を呼び起こす最大の元凶となっている。実際、以前に成された約束があるにもかかわらず、1年経った現在においてもフリーソフトウェア形態におけるJavaの完全な実装は果たされないままであるのだが、その一方でSunはコミュニティの作成したコードを自社のプロプライエタリ系コードに取り込む作業を進めており、依然として完成形態のJava実装環境の独占的な提供元としての地位を占め続けているのだ。こうした不満は理不尽なものではあるのだが、長年待たされてきたという背景を鑑みると、無下には否定しかねる批判とも言えるだろう。

2年目を迎えて

 プロジェクト発足から1年を経た時点で、当初考えていた地点にまで到達できたのかを尋ねたところ、Reinhold氏からは達観した返答が返ってきた。

 「そもそも私は以前にこの種の活動に関わった経験を持っていないので、事前にどのような見通しも持っていませんでした。Sunという組織の人間からするとこれは、その全体が非常にダイナミックなプロセスです。多数の物事が有機的に発展し始めているので、次に必要となる事柄を3つも4つも見極めておく必要があり、またフリーソフトウェアの世界にも注意を払って、私たちが見落としていたことや事態の改善に何を貢献できるかを考え続けなければなりません。今から見返すと、それなりに上手く進められてこれたというのが私の感想です」

 こうしたものはJava関係者の間にほぼ共通する心情のようである。Classpath開発者であるMario Torre氏の語る「もう1年待てばJavaの完全フリー化は達成されるので.NetやC#は過去の遺物になりますね」というのは純然たるジョークであるとして、こうした大胆すぎる予測よりは大幅に控えめであるもののフリーJavaコミュニティの間における楽観論は未だ消え去っていないからだ。

 「1年目はコード関連の問題でほぼ手一杯でした。2年目は、組織運営を軌道に乗せることと、Sunのエンジニア陣をより多くのオープン系活動に参加させることに主眼を向けることになるでしょう」とReinhold氏は語る。またBarr氏によると現在の計画では、Sun内部の品質保証システムへのアクセスないしは同等の機能を提供することや、コミュニティメンバ向けのバグレポート用ツールを整備することが含まれているそうだ。

 「ブログを探せばダメ出しをするだけの人間はどこにでも見つかるものですが、私たちの活動を好意的に評価してくれている人間も結構いるものですよ」と語るReinhold氏は、これがうれしい驚きであるかのような口調であった。「これは私の予想なのですが、もう1年待てばもっと喜べる事態になっているんじゃないでしょうかね」

Bruce Byfieldは、コンピュータジャーナリストとして活躍しており、Linux.com、IT Manager’s Journalに定期的に寄稿している。

Linux.com 原文