2005年 6月 24日 金曜日
JavaOne ネタに関連した話題を一つ。オープンソースに関して思っていることを書いてみたい。
Javaといえば、オープンソースへの道のりが話題になって久しい。
Javaってオープンソースじゃなかったの?という単純な疑問には一筋縄では応えられないほど複雑な事情がある。
Javaの周辺技術は、Struts や Ant など、オープンソースのものは数え切れないほどがあるし、Standard Edition (J2SE) や、Enterprise Edition (J2EE)のような標準プラットフォームに関しても、ライセンス企業/団体がオープンソースで開発している/しはじめている例がある。
そして、そもそも、Java のコアである、JDK のソースコードは、96年のリリース当初よりJavaソースコードが添付されており、VMのネイティブコード部分も98年のSCSL導入後からは無償で公開されている。
J2EE RI (Reference Implementation, または参照実装)も
SCSL の下で当初よりソースコードが公開されている。
オープンソースの議論になる時によく出てくる Bug Fix を世界中の開発者で行うことのメリットだが、これとて、Java プラットフォームには誰でもフィードバックを送れるBug Databaseが用意されている。
なので、オープンソース化を考える際には Java プラットフォーム全体は、既にオープンソースに限りなく近い場所にいる事を認識する必要がある。Sun は、Java プラットフォームの全面オープンソース化に慎重だとよく言われるが、責任を持つ企業としてはある意味当然の姿勢といっていいのではないだろうか。
現状のオープンソースに近い状態で本当に問題があるのか、オープンソース化しした場合に発生するデメリットとメリットは何なのか、見極める必要がある。
特に、Java プラットフォームが他のテクノロジーと違い面倒な点は、Write Once Run Anywhere というスローガンがあらわす Portability を大きな売りにしているということである。
一度書いたプログラムがどこでも動く。これを可能にしているのは、Java の実行環境である Java プラットフォームである。オープンソース化により非互換なプラットフォームを誰かが開発し、世の中に広めてしまう。そうなると Java アプリケーションの大きなアドバンテージが失われてしまうことになる。これは、ユーザにとっても開発者にとっても、害こそあれ利益のないストーリーだ。
だから、Java プラットフォームをオープンソース化するにしても、互換性をいかに保つのかが大きな課題になってくる。性善説に立ちたいのは山々でも、過去の厳しいライセンス形態のもとでさえ、Sun が法廷闘争をせざるを得なかった事実があったことからすれば、何らかの縛りが必要なことは明らかだ。そして既存のオープンソースライセンスでは、このような互換性への縛りを行うことは厳しい。何らかの新しいライセンス形態が必要かとおもえる。
このように、3つ事情が Sun をして Java プラットフォームの即時のオープンソース化に二の足を踏ませる理由であると言っていいだろう。
ただし、将来的には (1ヶ月先か、10年先かはわからないが)Java プラットフォームは全面的にオープンソース化されるだろうと考える向きは少なくない。私も個人としてそのような予想をしている。
Sun が昨年から立て続けに導入したライセンス、JRL,JIUL, JDL は、ライセンス条件が緩和されている。一つの見方として、Sun は徐々にオープンソースに近いライセンス形態をリリースしながら、適切な時期を見極めようとしているとも言ってもよいかと感じる。(JDL くらいまで緩和されると、実質的にオープンソースライセンスと違いはほとんどなくなっている)
その路線の延長上にある発表が今回の JavaOne でもあるだろう。Sun の Application Server の次期バージョン GlassFish が、JRL (研究、調査する機関/部署を対象としたライセンス形態。純粋なオープンソースライセンスではないが、研究・開発をする上ではオープンソースとほぼ同等のメリットが享受できる)の下で開発されることが発表されたが、それ以上の何らかの発表があってもおかしくはない。

少し、書くタイミングが遅れてしまったが、Solaris がようやくオープンソース化された。
OpenSolarisというそのままの名称のサイトからソースコードとツールがダウンロードできる。
口さがない方は、今更というかもしれない。確かに、もっと早いに越したことはなかった。しかし、決して遅すぎたわけではないと思う。
安定稼動が必要なサーバーOSとして、まだまだ Linux は、Solaris の域には達していない。
スレッド処理、I/O処理、プロファイリングの際の負荷の軽さ。現場から聞こえてくる情報では、Solaris と Linux の差は歴然とあるようだ。
Linux の Kernel にコントリビュートしているような方々はいまだ Solaris が Linux の目標だと認めていると聞く。
Linux にいったん移行したものの、パフォーマンス、安定性が理由で x86 Solaris に戻した例も複数聞いている。
別に Linux か、Solaris か、二者択一である必要はない。ただ、商用として長年かけて成熟してきた Solaris が、オープンソースコミュニティの 新しい選択肢の一つとして加わることは、誰にとっても利益こそあれマイナスとはならないと考える。
ところで、私自身はSolarisの一ユーザにしか過ぎなくて、専門家というわけではない。たまたまこのエントリーにたどり着いただけで 本当にOpenSolarisの情報が欲しい方のために、本当の専門家のBlogをリストアップしておきたい。

開発者向けガイドやNucleus処理の解説など、無料で公開してしまっていいのだろうかとさえ思えるのだが、 考えてみれば、これもオープンソース化の効用ということなのだろう。 ソースコードだけでなく、関連ドキュメントなどが無料で公開されることによる副次的効果。 そして、何よりこの OpenSolaris によって、Sun という会社そのものが大いに活性化されているのをひしひしと感じるのである。
JavaOne の事前情報を書こう、書こうと思いつつ、なかなか時間がとれないのだが、 とりあえず、一つだけでもネタを。
今回の JavaOne San Francisco のネタの一つは、間違いなく、lg3d (Project Looking Glass)だ。
一昨年にデビューし、昨年大きく取り上げられた lg3d だが、今年、大きな進展をみせている。
日本人として誇らしく思いたいのは、このプロジェクトを支える少なからぬ層が日本人だということだ。
(川原英哉だけではない!!)
世界的に見ても、比率としてこれだけ日本人が貢献しているオープンソースプロジェクトもなかなかないと思う。
JavaOne の期間中、毎日のように lg3d 関係の Activity があるので、
興味のある方はぜひチェックしていただきたい。
lg3d activities @ JavaOne
ちなみに、Duke Choice Award の優勝者も、日本人である。