JJUGナイトセミナー「緊急特集!Javaの無償版はなくならないぞ!」に行ってきた #jjug

JJUGナイトセミナー「Java SE 10 / JDK10 リリース特集」に行ってきました。簡単に所感をまとめます。

jjug.doorkeeper.jp

メモから抜粋。(資料が公開されたら貼っておきます)

JDK:新しいリリースモデル解説

www.slideshare.net

JDK8 までのリリースモデル

  • OpenJDK はソースコードを公開、バイナリ提供なし
  • ラクルは OpenJDK のソースコードにツール類を追加してバイナリ生成&提供
    • BCL
  • セキュリティアップデートはオラクルが開発
    • OpenJDK への同期は不完全
    • セキュリティアップデートにバグフィックスやたまに機能追加があったり
  • OpenJDK は Update Project が Update Release を提供している
  • これまでのリリースモデルだと開発完了した中小機能はリリース待ちの状態に

JDK9 以降のリリースモデル

  • OpenJDK コミュニティが開発してソースコードを公開
  • Java 11 では JFR や JMC が OpenJDK のソースコードに含まれる
  • OpenJDK では開発した機能が順次リリースされる
  • Oracle JDK はバージョンを固定して使いたいニーズに特化している
    • 3年に1度のリリース
    • 有償サポートは最低8年 (LTS)
  • アップデートリリースには脆弱性対策やバグFixが含まれる
    • 4半期ごと
  • OpenJDK バイナリは単一のソースコードで機能追加やメンテナンスが行われる
  • Oracle JDK は各バージョンごとにリポジトリが分かれる
  • バージョン番号は OpenJDK に合わせる
    • Oracle JDK 11 の次バージョンが 17 になる
  • 例えば、OpenJDK 13 あたりのタイミングで有償版に切り替えると Oracle JDK 11 時点の機能しか含まれない

  • Oracle Java Archive はそのまま残る

  • OpenJDK 側でも JDK9 以降のアーカイブ提供開始
  • Java SE 仕様の提案⇒定義⇒承認は JCP で進められる

  • OpenJDK は再配布可能なライセンスになっている

  • Deprecated の運用ルールはこれまで通り

    • 最短1年で機能が削除される可能性あり
  • Oracle JDK で11から17にアップデートするといきなり削除されている機能があるかもしれない

  • Oracle JDK 8 は2019/1までアップデートされる (個人利用に限り2020年末まで)

    • 企業内で使う場合は個人利用に含まれないので注意

あとで資料公開されるかもしれませんが、同様の内容は以下にあります。

JDKの新しいリリース・モデル、および提供ライセンスについて

OpenJDK開発の実態

適当に投げた質問がまさか上位に来るとは...。でも、普段聴けない話を聴くことができて面白かったです。

これまででいちばん胸熱なbugはどんなやつでしたか?

コンパイラが落ちる系のバグ」「Project Lambda のときは毎週のように落ちていた」

いかにJavaのバージョンアップと付き合うべきか

docs.google.com

  • Java はライフサイクルが早くなっただけ
    • リリースのスピードが速くなって、EoL も早くなった
    • 有償化されるとか無償版がなくなるというのは認識誤り

Java バージョンアップについて

  • 広範囲に亘って再テストが必要になる > テストするのは当たり前
    • バージョンアップ戦略を事前に決める (予算確保の意味で)
    • テスト自動化でコスト削減を図る
  • 周辺ライブラリやフレームワークの対応
    • Java のバージョンを上げるとフレームワークのバージョンを上げる必要があるかも
    • 周辺ライブラリの対応を待っている間にサポート期間が過ぎてしまうかも
    • 対応しないライブラリは切る、別のライブラリに乗り換える
  • AdoptOpenJDK
    • 最近、スポンサーに Microsoft が追加された
    • Java11 以降、3年ごとに4年間のLTSを提供する
    • 移行期間として1年間の猶予があるということ
  • LTS に追従、バージョン固定、に6ヶ月リリースに追従という選択肢が増えただけと言える

事前に日経xTECHのひとを呼んでインタビューをしていたとのこと。素晴らしい...。

バージョンアップ戦略はとても重要だなと思います。とは言え、6ヶ月リリースに追従するのはちょっと厳しいと思うし、バージョン固定はアレとなると、LTS に追従することになるかと思いますが、無償版を使うつもりならいよいよ本格的に AdoptOpenJDK を調べておいた方がよいのかなという印象。

以前、きしださんのエントリにいくつか載ってましたが、このあたりの詳細とか比較なんかを聴いてみたいです。

qiita.com