JJUGナイトセミナー「Java SE 10 / JDK10 リリース特集」に行ってきました。簡単に所感をまとめます。
メモから抜粋。(資料が公開されたら貼っておきます)
JDK:新しいリリースモデル解説
www.slideshare.net
JDK8 までのリリースモデル
- OpenJDK はソースコードを公開、バイナリ提供なし
- GPLv2 + Classpath Exception
- オラクルは 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 に合わせる
例えば、OpenJDK 13 あたりのタイミングで有償版に切り替えると Oracle JDK 11 時点の機能しか含まれない
- OpenJDK 側でも JDK9 以降のアーカイブ提供開始
OpenJDK は再配布可能なライセンスになっている
Deprecated の運用ルールはこれまで通り
- 最短1年で機能が削除される可能性あり
Oracle JDK 8 は2019/1までアップデートされる (個人利用に限り2020年末まで)
- 企業内で使う場合は個人利用に含まれないので注意
あとで資料公開されるかもしれませんが、同様の内容は以下にあります。
JDKの新しいリリース・モデル、および提供ライセンスについて
OpenJDK開発の実態
- OpenJDK は mercurial で管理している
- チケット管理は JIRA
- System Dashboard - Java Bug System
- OpenJDK Mercurial Repositories
- GitHubのようなプルリクやレビューの機能はない
- リポジトリは jdk と jdk-updates に集約されている
- Author, Committer, Reviewer の人数はだいたい同じ割合
- OpenJDK の開発者の数はオラクル社がいちばん多い (250人以上)
- 一問一答コーナー > Slido
https://t.co/2doInAqbGx に適当に投げた質問が上位に来てしまった...
— kntmr (@knt_mr) June 20, 2018
適当に投げた質問がまさか上位に来るとは...。でも、普段聴けない話を聴くことができて面白かったです。
これまででいちばん胸熱なbugはどんなやつでしたか?
「コンパイラが落ちる系のバグ」「Project Lambda のときは毎週のように落ちていた」
いかにJavaのバージョンアップと付き合うべきか
- Java はライフサイクルが早くなっただけ
- リリースのスピードが速くなって、EoL も早くなった
- 有償化されるとか無償版がなくなるというのは認識誤り
Java バージョンアップについて
- 広範囲に亘って再テストが必要になる > テストするのは当たり前
- バージョンアップ戦略を事前に決める (予算確保の意味で)
- テスト自動化でコスト削減を図る
- 周辺ライブラリやフレームワークの対応
- AdoptOpenJDK
- 最近、スポンサーに Microsoft が追加された
- Java11 以降、3年ごとに4年間のLTSを提供する
- 移行期間として1年間の猶予があるということ
- LTS に追従、バージョン固定、に6ヶ月リリースに追従という選択肢が増えただけと言える
事前に日経xTECHのひとを呼んでインタビューをしていたとのこと。素晴らしい...。
バージョンアップ戦略はとても重要だなと思います。とは言え、6ヶ月リリースに追従するのはちょっと厳しいと思うし、バージョン固定はアレとなると、LTS に追従することになるかと思いますが、無償版を使うつもりならいよいよ本格的に AdoptOpenJDK を調べておいた方がよいのかなという印象。
以前、きしださんのエントリにいくつか載ってましたが、このあたりの詳細とか比較なんかを聴いてみたいです。