yamadamn’s blog

IT関連技術で経験したこと・気になったことをたまに書きます

Software Design 2019年1月号 - 第2特集 第1章 "Javaのバージョンアップと付き合っていくために" へのコメントあるいは正誤表

前回の記事で、参考資料をいくつか挙げました。 yamadamn.hatenablog.com その中でも先日発売された『Software Design 2019年1月号』の第2特集 "Javaのバージョン問題に前向きに取り組む方法" の第1章 "Javaのバージョンアップと付き合っていくために" が、現段階でまとまっており、非常に有用だと思います。 ただ、いくつか細かいところで訂正したい箇所がありました。

という訳で、正誤表レベルですが記事として残してみます。

もちろん実際に書籍として執筆する際には、紙面やスケジュールの都合・バランスなど、様々なトレードオフがあったことは想像に難くありません。 そのため、あくまで私が事前にレビューするとしたら、この辺りをコメントしたかもしれない、とご理解ください。

以降、基本的に、見出し(節)や該当箇所を部分的に引用(ページ番号含む)し、コメントしていきます。

前書き

全体としてJavaが有償化することは今のところないので安心してください (P62)

"今のところ"だと、今後有償化される可能性もあると、若干不安を煽る日本語かもしれないので余計かもしれません。 考察は、なぎせさんの記事 Javaのリスク考察 2018年版 - プログラマーの脳みそ が詳しいですが、"Javaが有償化することはない" と言い切った方がよいかもです。

Javaの何が変わったのか?

Javaのリリースに関する変化

▼表1 Oracle JDKOracle OpenJDKのサポートの違い (P63)

Java 6の[前バージョンからの期間]が「1年3ヵ月」となっていますが「2年3ヵ月」が正しいです。

Oracleが提供するバイナリの変化

この2つのバイナリは内容的にはまったく同じものですが (P64)

実際には細かいところで、java -versionの出力や配布物(主にライセンス情報)など異なるため、"まったく同じ"訳ではなく、"ほぼ同じ"くらいが適切かと思います。

OpenJDKを提供するベンダとそのサポート内容

たとえばRed Hatや、Azul System、AdoptOpenJDKプロジェクトなどです。 (P64)

Azul Systems と"s"がつくのが正確ですね。AdoptOpenJDKも"プロジェクト"というよりはコミュニティといったほうが正確かもしれません。

▼表3 Oracle JDKOracle OpenJDKのサポートの違い (P64)

Oracle JDKの[リリース]が「3年ごと(LTSだけ)」となっていますが、実際にはnon-LTSも出てサポート期間(Premier Support)が6ヵ月です。 LTSの[アップデート提供]も「5年から最長8年」となっていますが、これは"最短"の期間であり、延びる可能性があります。 (元資料から消えてしまったので微妙ですが、魚拓には"At least"で注意書きがあります。)

こうした点は他のベンダーも似たようなものですが、書き方として「非LTSは6ヵ月、LTSは最短5年から8年」としたほうが個人的にはしっくり来ます。

COLUMN: サポートとベンダ

注A) IBMやSAPなど、OpenJDKではない独自実装 (P65)

SAPのSapMachine一部の違いはあるもののOpenJDKベースです。

▼表4 ベンダが提供するOpenJDK (P64)

先の表3のコメントと同様です。 またタイミング的にどうしようもないのですが、Red HatはWindows版のOpenJDKについて商用サポートを提供することが最近発表されました。

Javaのバージョンアップに対する方針 (P69-71)

大きく3つの方針が紹介されていますが、基本的にAdoptOpenJDKなどによる無償のアップデートを前提とした記載となっていると思います。

有償サポートを締結したうえで、もう少し長い期間(システムの寿命に合わせるが5年以上)使い続けてからバージョンアップする選択肢も割とあると思います。 方針としては "3、4年ごとにバージョンアップする" とそれほど変わりはないのですが、業務システムではもう少し慎重なユーザも多いと思います。 西野さんのインタビュー記事 "「Java 8はいつまで使い続けていいんですか?」Georges Saab氏に聞いたJavaのこの先" が肌感覚としては近いかもしれません。