既報のとおり、2007年6月10日(米国時間)、待望のJRuby 1.0がリリースされた。近々同リリースに対する修正要求やパフォーマンス改善を実施したマイナーリリース版JRuby 1.0.1が公開される見通しになっているわけだが、現在同プロダクトの開発MLにおいて将来リリースするバージョンが対応するJavaを、J2SE 1.4.2からJ2SE 5.0へと変更するべきかどうかが議題に挙がっている。

JRuby 1.0はJ2SE 1.4.2をベースに開発されている。このため、J2SE 5.0以降で導入されたアノテーション、ジェネリック、複数引数、列挙といった機能は使われていない。実装上の問題としては、J2SE 1.4.2には並列処理に対応したクラスが納められているjava.util.concurrentが用意されていない点が懸念されるところだ。J2SE 5.0以降であれば同パッケージのクラスを使ってJRubyを実装できる。

JRubyの開発をJ2SE 1.4.2からJ2SE 5.0以降のバージョンへと移行させる点については技術的な観点から賛成の声もあがっているが、次の2つの点から詳しく検討した方が良いという意見もある。1つは依然として完全にFLOSSで構築されたJ2SE 5.0実装が登場していないことから、そうした実装が登場するまでJ2SE 5.0への移行は控え方がよいのではないかというもの、もう1つは互換性の観点から依然としてJ2SE 1.4.2を使っている企業のために1.4.2互換を保ち続けることにも価値があるというものだ。

こうした移行の問題は、JRubyに限らず、Javaを開発言語に採用しているプロジェクトには常に付きまとっている問題だ。技術的観点からは、より新しいバージョンへ移行した方が利益があるが、互換性や現状普及しているバージョンという観点から、必ずしも移行することが優れた結果になるとも限らない。

そうした要因に加えて最近では、「JSR 315: Java Servlet 3.0」の規定でも、「JSR 316: Java Platform, Enterprise Edition 6」の規定でもそうだが、完全FLOSSのJava SEが登場していないことや、今後の互換性認証に不満があるということが、Javaに関係するプロジェクトにおいて技術的観点以外の要因として強く考慮されはじめている。