はじめに
WebサービスのJava11対応をしてみた話 の Java(JDK)
に関する部分です。
色々な方が記事にしていますが、本記事はあくまで私がOpenJDK11を選択する際の備忘です。
JDK11の選択肢
少なくとも今のところ以下のJDKの選択肢があります。
OracleJDK
言わずとしれたOracle社の公式JDK。安心・安全という点では他JDKを一歩上回ります。
Java11以降は、Oracle社と契約すると手に入ります。(開発用にはダウンロード提供されています)
契約&代金を支払えば無期限の永遠サポートを受けることもできます。
私のいるプロジェクトでは、比較的高額(3年サポート以降にはプレミアム価格上乗せ)代金を支払い続けることは難しいとの判断でNGになりました。
OpenJDK
Oracle社含むJava開発コミュニティで開発を実施しているJDK。他のJDK実装の基になっているようです。
サポートライフサイクルについて6ヶ月(次期JDKリリースまで)と短いのがネック。
※一時長期サポートをするとの噂も流れましたが以降音沙汰がないですね
私のいるプロジェクトでは、Oracle社の公式JDKに近いという安心感からアップデートコストを支払ってもよいのでOpenJDKを選択するという結果になりました。
Redhat OpenJDK
RedHat社がメンテナンスするJDK。RedHatLinux上であれば長期サポートが提供されるようです。
RedHatLinuxのライセンス購入が必要なので、導入ハードルはOracleJDKに近いかつOSの制約がある分難しいところです。
私のいるプロジェクトでは、RedHatLinuxを利用していないため導入NGとなりました。
AdoptOpenJDK
IBM社含む数社、数コミュニティで開発を実施しているJDK。現状のコードベースはOpenJDKでビルド提供のようです。
実際の該当バージョンのサポートライフサイクル終了後にどのように運営されていくかが気になるところです。
私のいるプロジェクトでは、実績面から不安視され導入NGとなりました。
ZuleOpenJDK
Azure Systems社がメンテナンスするJDK。無償の長期サポートが提供されるようです。
Microsoft社のAzureにてサポートが提供すると話題になりました。
実際の該当バージョンのサポートライフサイクル終了後にどのように運営されていくかが気になるところです。
私のいるプロジェクトでは、Azureを利用していないこととAdoptOpenJDKと同様に実績面から不安視され導入NGとなりました。
Amazon Corretto
Amazon社(Amazon Web Services)メンテナンスするJDK。無償の長期サポートが提供されるようです。
Amazon Web Servicesに現在いるJava開発者のJames Gosling氏のコメントや既にAmazon Web Services上のJDKとして利用されているとのことから、大きな話題になりましたね。
私のいるプロジェクトでは、現状プレビュー版であることから導入NGとなりました。
正式版になれば将来的には導入検討対象になりそうな予感です。
感想
私のいるプロジェクトでは、決定権をもつ人間が比較的安定志向ということもあり、アップデートコストを支払ってもよいのでOpenJDKを選択するという結果になりましたが、2018年春頃に話題になり始めた頃と比べても選択肢も増えています。
条件次第では、過去のJDKと同様に無償の長期サポートを受けつつ利用することが可能なものも多く、悩んでいる方も多いのではないかなと思います。
Java8のサポートが終了する2019年の年明け、またはOpenJDK11のサポートが終了する2019年3月頃に再度話題があがりそうですが、皆様の選択の参考になれば幸いです。