IBM i はJava 11をサポート予定
Javaは大変動の真っただ中にあるようです。一般ユーザーによるプログラミング言語の使われ方だけでなく、IBM i プラットフォームでの使われ方をも変えてしまいかねない状況です。ミッドレンジ プラットフォームでJavaを実行しているユーザーにとっては、来たるJava 11のリリースは、注視すべきリリースとなるでしょう。
27年前にSun Microsystems社がこのオブジェクト指向言語を世界に向けてリリースして以来、Javaは(ある意味)オープンソースでしたが、昨年、 OracleがJava Standard Edition(SE)Java Development Kit(JDK)のすべての機能をGPLライセンスでリリースする計画を発表したことで、Javaは真のオープンソース プロジェクトになることへ向けての、より確かな一歩を踏み出しました。その後まもなくOracleは、今はJakarta EEと呼ばれているJava Enterprise Edition(EE)についても、オープンソースへの移譲を行っています(4月掲載の記事を参照)。
そうした流れの一環としてIBMも、過去12年間に渡ってIBM i (およびその他のプラットフォーム)で使用してきたJava仮想マシン(JVM)テクノロジーを、オープンソース コミュニティへ移譲することを決めました。具体的に言えば、昨年末の、Open J9と呼ばれる新たなEclipse関連のプロジェクトへのJ9 JVMの移譲です。
こうした変化の中でJavaコミュニティは、リリース サイクルと命名方式を見直すことも決めています。6か月ごとのリリース サイクルへの移行を決めたのは、今もなおこのオープンソース プロジェクトに多大な影響力を及ぼしているOracleでした。昨年9月にリリースのJava 9を起点として、続くJava 10は今年3月のリリースとなりました。また、Oracleは、今年9月に予定されている次のリリースから、「年-ドット-月」という命名方式の開始も決めています。つまり、次のリリースは「Java 2018.9」と呼ばれることになるというわけです。
しかしながら、Java 9および10のリリースはJavaコミュニティによって最長で6か月間しかサポートされないとされたことから、IBMではそれらのJavaバージョンをスキップすることとし、2014年に初めてリリースされたJava8を、IBM i でのJavaの最新バージョンとしてきました。そして、IBMがIBM i でサポートを予定しているJavaの次のリリースは、今度のJava 2018.9リリースということになっていました。
ところが、1か月程前、Javaコミュニティは「年-ドット-月」の命名方式を取り下げて、従来の番号順での命名方式を復活させることとなりました。紆余曲折はありましたが、結果としてIBM i でサポートされるJavaの次のリリースは、「Java 11」ということになります。
それでは、Java 11のリリースはいつになるのでしょうか。現時点ではまだ分かりません。「Java 11がリリースされる具体的な日程は、現時点では把握できていません」と、オープンソース担当IBM i アーキテクトのJesse Gorzinski氏は述べます。Javaの新たなリリースをこのプラットフォームへ導入することも担当業務の一部であるため、Gorzinski氏は大きな仕事を抱えてここしばらくは大変そうです。
Gorzinski氏の説明によれば、現在、開発中であるJava 11は、この言語に多くの重大な変化をもたらすそうです。そして、それらの変化は、IBM i プラットフォームにもかなり大きな影響を及ぼすようです。
まず、Javaコミュニティは「アプリケーションがパッケージされ、配布される方式に対して大幅な変更」を加えようとしている、とGorzinski氏は『IT Jungle』に述べました。「そして彼らは、Javaがほぼ当初から使用してきた古いクラスパス テクノロジーを廃止し始めています」 代わりに、JavaコミュニティはJavaモジュールの使用へと移行しているのです。
こうしたクラスパス テクノロジーからモジュール テクノロジーへの移行は、あらゆるJavaアプリケーションに大きな変化をもたらす、とGorzinski氏は述べます。「Java 8から11へ移行すると、Javaアプリケーションは動かなくなるかもしれません。ちょっと怖いものがあります」と彼は述べます。「JavaのどのメジャーJDKでも、その可能性はあります。ただ、Java 11では言語自体に数多くの重大な変更があるため、そうなる可能性はやや高めになりそうです。」
良い知らせとして、Javaの惨劇の舞台となるのは、おそらくミドルウェアがほとんどだろう、と彼は述べます。「現時点では、大きな影響が及ぶアプリケーションは、主にWebSphereのようなミドルウェアということになるのではないかと思います」と彼は述べます。「WebSphereは大幅な変更が必要になるでしょう。もしかしたら、すでに対応しているかもしれませんが、いずれにしても、WebSphereはJava 11をサポートするよう変更される必要があります。しかし、WebSphereを使用しているアプリケーションは、おそらく影響を受けないでしょう。あるいは、影響を受けるとしても、他のJDKでこれまで受けてきた程度の最小限の影響で済むと思われます。」
Javaでアプリケーションを書き、アプリケーションを最新に保っておきたいと思うIBM i 開発者は、もちろん、Java 11での変更について説明を求められることになるでしょう。Gorzinski氏によれば、良い知らせとしては、IBM i の顧客にとって、Javaのインストールおよびサポート内容はあまり変わらないだろうということです。
「Javaの次のメジャー バージョンの輪郭がはっきりしてきたら、それに対する新たなJV1オプションが用意されるでしょうし、以前にJV1オプションをインストールしたのと同じように、そのオプションをインストールすることができるでしょう」と彼は述べます。「したがって、その件に関しては、IBM i の顧客にとってはいつもの作業となるでしょう。しかし、言語やバージョンが変わったかどうかは認識しておく必要があります。現在の状況は把握しておく必要があります。」
確かにIBMは、IBM i によって使用されているJVMを、オープンソースの領域内のEclipse J9プロジェクトへと移譲しはしましたが、だからといってIBMがその開発に関わらなくなるわけではないことをGorzinski氏は声を大にして述べます。
「IBMは、このJava製品に対する開発の取り組みを縮小しようとしているわけではありません」と彼は述べます。「JVMをオープンソース化することで、コミュニティからの「貢献」を期待しているだけなのです。現在も、IBMが行っている「貢献」の量に変わりはありませんし、もしかしたら多少増えているかもしれません。以前とまったく同じ人材、まったく同じスキルを投資してはいるのですが、起こりつつあるそのイノベーションに、コミュニティが加勢してくれることも期待しているのです。」