IBMは、これまで自社で開発してきたJavaVMをオープンソース化すると、サンフランシスコで開催されていたJavaOne 2016で発表しました。

JavaOne 2016の3日目の基調講演に登壇した同社Distinguished Engineer兼Java CTOのJohn Duimovich氏は、冒頭で聴衆に「With Community」（コミュニティとともに）と呼びかけたあと「Make Java Great Again」（Javaを再び素晴らしいものにしよう）と書かれたキャップをかぶって見せました。

これはIBMが、コミュニティと一緒にJavaを進化させていくのだという心意気を示したメッセージのように受け止められます（ある意味ではOracleへの牽制にも見えるでしょう）。

言語ニュートラルなランタイムのOMRをJavaVMに

Duimovich氏は、Microservicesの広がりによって、短時間で終了するような小さなサービスが多数実行されるというアーキテクチャへとアプリケーションが変化しているなかで、JavaVMにも、JavaVMが起動されてからランタイムとしての実行速度が高速に達するまでの時間をより短くすることや、メモリに対するより小さなフットプリントが求められていると指摘。

同社はこの方向性に沿ってJavaVMの開発を進めていくとしました。

そのうえで、よりイノベーションの速度をあげていくためには、コミュニティとともに開発しなければならないとし、これまで同社が独自に実装してきたJavaVMなどをオープンソース化すると発表しました。

上記スライドの一番右が、オープンソース化されるIBM SDKの構造です。一番上は「IBM Value」で、製品のための同社の付加価値があり、真ん中のオレンジ色は「Open JDK」のクラスライブラリをもってきます。

いちばん下の緑色のところが「OpenJ9」と呼ばれる、同社が独自に実装し、オープンソース化されたJavaVMです。

このOpenJ9のコアとなるのが、Eclipseのプロジェクトとしてオープンソースとなっている「OMR」です。

OMRについて、Duimovich氏は次のように説明しています。

「これは言語ニュートラルなランタイムで、これまでわれわれが出荷したすべてのJavaVMの一部となっている。つまりJava 8は現時点でこの図（上記図の右）のようになっている。（略）JIT、GC（ガベージコレクション）、Diagnostic、モニタリングなどの、Javaやあらゆる言語のランタイムを実装するために必要なものを抜き出しものだ。

これまで秘密だったのだが、OMRはIBMがこれまでに販売してきた8つもの異なる言語のランタイムで使われてきた。そこにはCOBOLやPL/Iなども含まれている。驚くことにまだそれらは現役で、おそらくこの部屋の誰もが、金銭の支払いのときにはCOBOL処理のお世話になっていることだろう」

OpenJ9は、Java 9のリリースと同時に正式版をリリースする予定とのことです。

JavaOne 2016

Oracle OpenWorld 2016