Apache Harmony

最近話題になっているASFのJ2SEを作るプロジェクト.大本の提案書とFAQは以下の通り.

http://mail-archives.apache.org/mod_mbox/incubator-general/200505.mbox/%3CCA4BEB82-3D84-457D-9531-1477DD749919@apache.org%3E
http://mail-archives.apache.org/mod_mbox/incubator-general/200505.mbox/%3CE3603144-2C26-4C31-896D-6CC7445A63EB@apache.org%3E

また,これに含まれている概念図は以下の通り.

http://people.apache.org/~geirm/harmony.jpg

ちまたの日本のマスコミが報じているように単にオープンソース版を作るだけというわけではなく,J2SEを適切にモジュール化し,ごく一部だけを改良するだけで高性能版やある分野に特化した版を開発したり,ある試験的な機能を試験実装したり,マイナープラットフォームへの移植が容易になるような実行環境を実現しようという意図があるように見える.

いくらオープンソースライセンスであっても,今のJ2SEの巨大さを考えたら,結局挙動が似ているけど決して同じではなく劣ったコピーを,本家よりかなりスケジュールが遅れて生み出す可能性も高いので,疑問視する人も多いだろう.しかし,この目的なら開発する理由もまだ納得できる.

特に最近は,Javaはすでに単なるプログラミング言語ではなく,モニタ機能や実行最適化機能などの豊富な機能を持つプログラム実行環境となりつつある.さらに企業ではある特定の目的に合致した実行環境を作成したい,またはある種の目的に特化した機能をVMに追加したいという要望がでてきているようである.Sun Microsystemsもかなり多くの選択肢を選べるようにしてくれてはいるが,基本的にはサーバ用途が主であり,すべての用途をカバーできるわけではない.用途に合わせて細かくJava実行環境を簡単に構成できるようになるのは,Javaの有用性をより高めることになるかもしれない.

ただし,完全に互換なクラスライブラリを最初から開発することを考えると結構頭が痛いのではないか.これは技術的に難しくはないのだが,ドキュメントに必ずしも明記されていない細かい挙動に関するバグは世界中のJava開発者が協力して長い時間を掛けて潰してきたのに,某O氏のblogでGNU Classpathのバグが報告されていたように,その歴史をもう一度繰り返すことになるからだ.この点に関して,何かうまい方法があるとよいのだが.