Oracle製Javaとサポート無くなる詐欺

2018年8月31日



※OpenJDKについては/tag/OpenJDKを参照してほしい

OracleがこれまでのJavaのリリースのやり方をやめると昨年から予告してきており、具体的に今年それが発表されたようだ。大雑把にいえば、こうだ。

  • Javaのメジャーバージョンアップを半年ごとに頻繁にやる。9月にはJava11、来年3月にはJava12という具合。
  • Java11以降では無償提供はしない。契約した顧客のみ。
  • しかし、オープンソース版のOpenJDKにも本家とほぼ同じものを提供する(貧乏人はこちらを使えということ)。

もちろんここでは、高額をOracleに支払うことなくJavaを利用したいという観点で見ていく(本当に価格表を見てみると目の玉が飛び出るような金額だ)。つまり、今後もタダでJavaを使い続けるということだ。

CentOSと似て非なるところ

CentOSと似ているところ

この状況はおおよそCentOSと同じと思えばよいのではないか?もともとCentOSのコードは、有料OSであるRedhatがオープンソースとしてリリースしているものであり、それを流用して「サポートの無い」CentOSを誰もが利用できている。そして、特にサポートの無いことによる不都合等はない。

OpenJDKによって、本家とほとんど同じシステムが利用できるのであれば、問題はなかろう。そもそも、私自身もOracleや、元々のJava開発元であったSun社からサポートを受けたことなどない。もしバグがあれば、それを何とか回避する方法を考えたものである。この点もCentOSと全く同じだ。

世の中には、「サポートが無くなる無くなる」と「サポート無くなる詐欺」で危機感を煽る人間が多いのだが、彼らに聞いてみたほうがよい、どの程度サポートを受けたことがあるのかと。それで何らかの問題が解消したことがあるのかと。

もちろん、セキュリティ問題があるなら何とかしてもらわねばならないが、いかなるOSだろうがシステムだろうが、サポートを受けていればそれですぐ直してもらえるとは限らないのは当然のことである。

CentOSとは異なる点

しかし、すべてを支配するCentOSとは異なり、何らかのOSの上でしか動作しないJavaには、その事実によって足かせが課せられることがある。個人的に非常に困る点としては、特にWindowsによる互換性を切り捨てたバージョンアップだ。

今に始まったことではないのだが、新たなOSを出せば、既存のプログラムが動かなくなる。いくらこちらで作成したJavaプログラムが基本的にOS非依存で、OSの違いを吸収してくれるとはいっても、Java自体がOSに対応できなければ何ともならない。

サーバ側には大した影響は無い

私のようにデスクトップのJavaプログラムを多数開発するような者には、上記のような懸念があるのだが、しかし、Javaの利用はサーバ側の方が圧倒的に多いはず。であれば、無駄で互換性もなく、そのたびにバグだらけになるアップデートを繰り返すWindowsのようなOSは、はなから使っていないはずだ。

より安定したOSを長期間使うはずだし、まして業務プログラムであるなら、アプリ自体を頻繁に変更することも無いはずだ。

であれば、Oracleが方針を変えたところで大した影響はない。いつも通りの「サポート無くなる詐欺」でしかない。「サポート無くなるから、新しいOSにしましょう。でも、今のハードでは非力だから新しいハードを買いましょう」などという、いつもの業界ぐるみの詐欺行為にすぎないのである。

この業界では、いつも何かしらの理由をつけては、それもほんのちょっとしたことで良いのだが、巨額の予算をどこからか分捕ろうとするのである。いつもその口実を探しているのが実態というものだ。

※もちろんOracleによるJavaの収益化は順当だ。私が指摘しているのは、こういった事柄をとりあげ、いつも通りに大騒ぎする輩のことだ。

では今後どうするか?

そもそもJavaのコードのほとんどが何年も前にGPLとしてオープンソースになっており(今調べてみたら2006年のことであった)、他社、代表的なところではIBMであるが、それを利用してJavaを出しているのである。

おそらく今後は、JavaコミュニティではOpenJDKが中心的な位置とみなされ、実質的な標準となって行くのだろう。もちろん、お金のありあまっている人はOracleに行くだろうが。

今後はOpenJDKについて、あるいは場合によってはIBM他のJavaについてもどの程度の違いがあるかを探っていきたいと思う。