Sun Microsystems, Principle Engineer Mark Reinhold氏

Sun MicrosystemsがJDKのソースコードをGPLの下でオープンにすると発表したのは2006年11月のことである。それから約半年後の2007年5月、すなわち昨年のJavaOne Conferenceにおいて、オープンソース版のJDKである「OpenJDK」が正式にリリースされた。あれから1年、OpenJDKプロジェクトは現在どのような状況になっているのか。米国サンフランシスコにおいて6日(現地時間)より開催中の2008 JavaOne Conferenceにおいて、SunのPrinciple EngineerとしてOpenJDKプロジェクトの暫定ガバナンスボードを務めるMark Reinhold氏が最新の動向を紹介した。

100%フリーなJDKを実現

まず最も重要な点は、現在OpenJDK 6はクローズドなバイナリコードを含まない、完全にフリーなJDKであるということである。昨年のリリース時にはSunがライセンスを持たないサードパーティ製のコードに関して若干クローズドな部分が残されていたが、その後、それらのコードを徐々にオープンソースのものに置き換えていき、現在はすべてがGPLベースのコードで構成されているという。これにはIcedTeaプロジェクトの果たした役割が大きい。

リードエンジニアのJoe Darcy氏によれば、OpenJDK 6は実用に耐えるレベル程度には安定しており、Sunとしては可能な限りさまざまなLinuxディストリビューションへのインテグレーションを進めていきたいとのことである。現在のところUbuntu 8.0.4およびFedora 9での動作に成功しており、このJavaOneでは初日のGeneral SessionにおいてUbuntuへのバンドルが正式に決定したことが発表されている。

性能はかなり良く、体感的にはSunのバイナリに比べて遜色ないレベルに到達しているそうだ。ただしJCK(Java Compatibility Kit)による互換性テストでは30以下程度のエラーが残ってる。Openoffice.org、GlassFish、Tomcatによるそれぞれのアプリケーションテストは概ね良好であり、NetBeansおよびEclipseによる動作は多少のバグが認められたもののフィックスされている。

今後残されている作業としては、新しいサウンドエンジンの実装やパッチセットの縮小化、LinuxだけでなくOpenSolarisなども含めたその他のディストリビューション用パッケージの提供などが挙げられている。

コミュニティの活動

OpenJDKにおけるコミュニティはいくつかのグループおよびプロジェクトに分かれている。グループは同じ対象(技術やプロダクトなど)に興味をもった人々が集まったもので、プロジェクトは特定の成果物を開発することを目的としたものという位置づけになっているという。

初期にはSunの開発チームごとにグループが用意されていて、たとえばAWTグループやHotSpotグループ、Compilerグループ、i18nグループなどがあった。もちろん新たにグループを作ることもでき、現在はConformanceやPortersといったグループが追加されている。

一方プロジェクトについては、初期には「Free font rasterizer」や「Free graphics rasterizer」「Free sound engine」という、既存技術のフリーな実装を行うプロジェクトと、「Module」というJSR 277および294の実装を行うプロジェクトがあり、その後多くのプロジェクトが追加された。たとえば「Framebuffer Toolkit」「Multi-Language VM(the DaVinci Machine Project)」「Closure」「New I/O」「VisualVM」など興味深いプロジェクトが名を連ねている。

特にModuleやMulti-Language VM、Closure、New I/Oなどは次期Java SEに採用される予定の新機能に関する実装を目指すものであり、Javaプラットフォームの最新動向を追っている開発者にとっては目が離せないものだ。今後も同様に、OpenJDKのプロジェクトによってJava SEの新機能の実装を行うという例が増えてくるだろう。

OpenJDKプロジェクトでは現在も多くの開発者の参加を呼びかけている。それをサポートするためにDeveloper's Guideなどのドキュメントの整備も進められている。まずはできるだけ多くの人にOpenJDKを試してみてほしい。