見出し画像

英語で読む「Java Myths」

昨日に引き続き、Javaの話題。Oracle CodeOneでのMark Reinholdによる基調講演を英語で読んでみたいと思って探した、もうひとつの記事を読んでみる。

Publickeyでは「Top Five Misconceptions」と紹介していたMark Reinholdのプレゼンを、Forbesは「5 Myths」と書いている。

1. Every feature release will be as disruptive as past releases. “No, that’s not true,” he said. “The rate of innovation hasn’t changed. What’s changed is the rate of innovation delivery.”

Javaが新しいバージョンになるたびに、disruptive(破壊的)になる。そういえばRubyでは元のオブジェクト自体が変わるメソッドを破壊的メソッドと読んでいるが、ruby-lang.orgの用語集を見たら、こちらはdestructiveという単語を使っていた。

2. Non-LTS (long-term support) releases are just a fancy name for a beta. “No. The only difference with an LTS release is it has a longer [three-year] support timeline,” Reinhold said. “You can use a non-LTS release in production if you like, but know that you’ll have to update it in six months, or find someone to support it, or perhaps support it yourself.”

Javaに限らず特定のバージョンを「LTS(long-term support):長期間サポート」をすると宣言する習慣がある。個人的には、これは悪くない習慣だと思っているが、LTS以外を「fancy name for a beta」と揶揄したい人もいて、確かに先進的な機能が盛り込まれているのに、そのバージョンはサポート外というのは、もやもやする。似たようにUbuntuもLTSを設けているが、UbuntuはLTS以外も9ヶ月サポートなのに対し、JavaはGAになった瞬間に公式アップデートが終了し、商用ユーザのアップデートも6ヶ月しか延長されない。Javaって、そんなに辛かったのか。

3. To remove an old feature, it must be deprecated three years in advance. “False. To remove a deprecated feature requires a production-ready build that issues a suitable warning at either compile time or runtime—because a working build, after all, is the ultimate release method.”

LTSが出る期間が空くので、開発者は使ってるライブラリなどを早い段階で削除しておかないといけないという話のようだが(もしかして誤解してるかも)コンパイル時にワーニングが出るから大丈夫という話は、ちょっと噛み合ってないかも。

4. If you maintain an infrequently migrated system you can ignore the non-LTS releases. “That would be a bad plan,” Reinhold said. “If you test with each feature release, then you’ll be ready to migrate to the next long-term support release.”

これもLTSが絡む問題。頻繁に更新されないシステムは次のLTSまで待ちましょうという話だが、non-LTSを使った開発でも、次のLTSの準備になりますよと。これは開発側のコスト見合いじゃないかな。

5. You can’t get more than six months of support for any non-LTS release and never more than three years for any LTS release. “Not true. It all depends on what the non-Oracle members of the JDK community decide to do. They have a proven track record and are already discussing how best to support JDK 8 and JDK 11 for the long haul.”

最後の誤解もLTS。この基調講演、どうにもMark Reinholdが誤解を解いてると言うより、LTSの変更に伴うFAQに対応してるようで、ここまできたらLTSそのものを見直したほうがいいんじゃないかという気になるが、会場の雰囲気はどうだったんだろうか。

この記事が気に入ったらサポートをしてみませんか?