Javaのサポートポリシー変更で何を困っているのか
下記のJavaの記事を読んで、実際に使っている人とは論点が異なるような気がして作文したいと思います。
困っている人の気持ち
今日でいよいよ、OracleによるOracle Java SE 8の商用ユーザー向けの公式アップデートおよび自動更新が終了します。
Oracle Java 8 SEは2014年3月にリリースされもう5年近く現役でした。一方で、今後の後継リリースはライセンスを変更し、半年間無償で利用できるバイナリは、非商用・開発用途のみに限定されることとなりました。Oracle Javaに限ればJavaは有償化されたのは間違いありません。かつ、Javaで仕事をしている人はOracle Java前提の構築がほとんどだったのでこれだけ波紋が広がったのだと理解しています。
一方で、OpenJDKについては、リリース間隔は依然として半年ごとです。もしOpenJDKに追随するなら半年おきにバージョンアップをすることに対応しなければいけません。これは依然として無償なのですが、一方でソースコードからバイナリを作って使うプロジェクトはごく少数ではないでしょうか。また、半年ごとにバージョンアップするというのも非現実的なのでユーザーが困っているのではないのでしょうか。
また、OpenJDKをもとにバイナリを提供する流れがあり、AdoptOpenJDK、やIBM JDK、またはRedHat Enterprize Linuxに含まれるOpenJDKは独自に長期サポートを行いバイナリを提供する表明をしています。Java 8はかなりこの流れで救済されていてどのバイナリも2022年くらいまでは救うようです。したがって、乗せ換えを行うのも妙案でした。でした、というのは今日でタイムオーバーなので、問題を正しく認識できた組織はすでに対応を行っていると思います。
そもそも、OpenJDKを配布しているhttps://jdk.java.netにも、ORACLEのロゴが貼られていることから考えても、openjdkがOracle JDKのビジネスと競合する動きをするのはあり得ないと思っています。
Oracle Java 8を、Oralcleのホームページから無償でダウンロードして有償案件で利用するのが今日までの優しいJavaの世界でした。明日以降のOracleのページがどのように変化するのか注目しています。おそらく8が消えます。そして開発者用途でしか使えない無償ダウンロード可能なOracle Java 11だけが残ります。それがすべてです。
Java is still freeの意味
いくつか利用の定義を狭めれば、Javaはまだ無償だと思います。
・開発もしくは非商用用途での、Oracle Javaの利用(ただしバイナリ公開、無償アップデートは半年間のみ)
・CentOSなどに含まれているOpenJDKバイナリの利用(サポート期間はRedHatに準ずるので長い)
・AdaptOpenJDKのバイナリの利用(参照)
・Amazon Correttoのバイナリの利用(参照)
・IBMのOpenJDKのバイナリの利用(参照)
商用利用において保守付きでJavaを使うとなると、Oracle Javaでサブスクリプションを購入するか、IBMか、もしくはRedHatにするか・・・と言ったところになると思います。
サポートを、「脆弱性が出た場合は確実にFIXが出ること」と広く定義するのであれば、LTS(長期サポート)を前提とした今までのJavaの使い方は、無償でやろうとするとこれまでのようにはいかなくなった、と理解しています。
2月になったら各プロダクトの状況が見えてくると思いますので、実際各社はどうしたのか表面化します。
少なくとも、Oracle Java 8を「無償で」使っていたパッケージは何らかの対応を今日までにしなければいけないはず、です。
明日以降、興味を持ってJava関連の動きを見ていきたいと思います。