IT小僧の時事放談

Java SE 11(Oracle)は無料じゃないよ 先が見えてきたJavaにさようならを言おう

有料版
Oracle Java 11 Releasedが、リリースされました。
https://www.infoq.com/news/2018/09/java11-released

これまで無料で使えていたものが有料化となりました。

Javaで生活を営んでいたすべてのエンジニアは、どうすればよいのか?

今回のIT小僧の時事放談では、
Java SE 11は無料じゃないよ 先が見えてきたJavaにさようならを言おう
と題して
オラクル社のJava有料化における騒動と対策について
いつものように小難しい話をわかりやすく解決しながらブログにまとめました。

最後まで読んでいただけると幸いです。

スポンサーリンク

Javaのおさらい

Java SEとかJava EEとかについて簡単に説明します。

Javaで抑えておいてほしい4つのこと

  1. Javaとはプログラミング言語の1つ
  2. 人気のある言語1位
  3. 多くの現場で使われている
  4. 汎用的でOSに依存しないプラットフォームの提供

これだけを最初に抑えておいてください。

特徴

いろいろなところ(WindowsとかMacOSとかAndroidとかiPhoneとかサーバ)とかで動く環境(プラットフォーム)が用意されているので原則Javaで書いたプログラムがどこでも動くぞ。
ということです。
正確に言うと「どこでも動く」ではなく「比較的簡単にどこでも動くようになる」というプログラム言語です。

Windowsで開発したものが、MacintoshでもJavaの環境があれば動くと思ってください。

Minecraft(マインクラフト)というゲームをご存知ですか?
あのゲーム Javaで書かれているのです。

Java SE

正式名は、
Java Platform, Standard Edition(Java SE)
デスクトップ(パソコン)やサーバーでJavaアプリケーションを開発するための基本的な機能が詰まったものです。
プログラムの開発には、必須です。

Java EE

正式名は、
Java Platform, Enterprise Edition(Java EE)
企業で使うサーバー等の機能が詰まったものです。
Webの開発で使いうことが多いのでJava SEと合わせ技的に使います。

JRE

正式名は、
Java Runtime Environment(JRE)
あなたのパソコンにインストールされていると思います。
これがないとJavaが動きません。
ここは、無料なのでJavaでつくられたアプリケーションを使うのは、お金がかからないので安心してください。

Java SEを使うならおカネを取るぞ!(オラクル社)

Javaで開発するときに絶対的に必須なJava SEをオラクル社が、2018年9月のバージョンからおカネをいただきます。
と発表しました。

これまで Java全般は、基本無料でした。

Javaの生まれ故郷がサン・マイクロシステムズという会社でオープン(みんなに開放)で発表していたので 無料で使えるという文化が根づいていました。
その方針によって Javaは、世界中のシステムをつくるときに活用され、特にインターネットと相性が良かったので爆発的に世界中で使われました。

世界に貢献する言語と環境を生み出してきた サン・マイクロシステムズ社は、UNIXという世界で一人勝ち状態だったのですが、経営が怪しくなり
2009年4月20日にオラクル社に買収されてしまいました。
もちろん、その中には、Javaも含まれています。

そこから約9年間、オラクル社は、Javaのサポートを無償で行ってきました。
Javaの環境は、インターネットで使われることが多く、ハッキングも多いわけで、次から次へとバグやセキュリティの問題が出てきます。

オラクル社は、それに対して無償で対応してきたのです。

ところが、2017年、オラクル社は、Java SE(開発には必須です)に対して

「2018年の9月に出てくるバージョン(Java SE 11)からおカネをいただきます。」

と発表しました。

世界中のJavaで開発されてきたシステムが一斉に悲鳴を挙げます。

おいおい!カネ払うのかよ ヽ(`Д´)ノプンプン

というわけです 。

面倒な説明をわかりやすく

バグや、セキュリティの問題が見つかるたびにオラクル社は、修正をしてきました。
今までは、それも無料で使えたのですが、今度からおカネが必要になります。

では、バージョンの説明をします。
Java SE XのXが、バージョンを表しています。

Java SE 8 2019年1月で無償サポート終了
Java SE 9 2018年3月無償サポート終了しています。
Java SE 10 2018年9月でサポート終了

Java SEで無償でサポートを受けられるのは、Java SE 8のみとなっています。
なんか変ですね、Java SE 8という2014年3月18日(米国時間)に発表されたものが、一番長いサポートって
わざとややこしくして、混乱させているとしか思えません。

そして、オラクル社からJava SE 10という有償版が登場します。

この Java SE 11は、3年間のバグやセキュリティの修正をしますよという保証がついています。
これを Long Time Support(LTSと略されています)と言います。

今後、オラクル社のJava SE(開発環境)を使いたければ、おカネが必要になってくるのです。

費用

Oracle Java SEには、4つサポートが組まれています。

  • Java SE Advanced Desktop
  • Java SE Advanced
  • Java SE Suite
  • Java SE Subscription

Javaが主に使用されているのは、サーバーと呼ばれている環境なので Java SE Advanced が多いと思われます。
このお値段

  1. ライセンス費用=1物理プロセッサーあたり
    年間60万円。
  2. 保守費用=1物理プロセッサーあたり
    年間13万2000円。

1物理プロセッサーというのは、CPUの数です。

通常、ネットサービスを提供している場合、1物理プロセッサーというのは、ありえないのでかなりの金額になるのは、間違いありません。

また、Java SE Subscriptionという月々支払うパターンも追加されています。

詳しくは、オラクル社の価格表に記載されています。
https://www.oracle.com/assets/e-pl101005-101005a-n-176288-ja.pdf

もし、この記事を読んでいる人で
「うちのサービスは、大常備なんだろうか?」
「いくらオラクル社に支払えばいいのか?」
と思っている担当者や経営者の皆さん。

詳しくは、自社のシステム担当者か開発を担当しているIT企業と相談したほうが手っ取り早いです。

空気や水と同じだったJavaは、無料じゃなくなる

無料で使えるシステムの開発環境は、たくさんあります。
これを「オープンソース」と言います。

しかし、空気や水がいきなり「カネとるぞ」と言ってきたらどうしますか?
Javaは、空気や水と同じように無料で使ってきたわけですが、そうもいかなくなりました。

OracleのJavaを使っていればよいという 安心は、おカネを払うしかなくなりました。

OpenJDKという逃げ道もあるけど

オラクル社が、提供している Java SE(Oracle Java SE)とは、別に無償版の開発環境を提供している
OpenJDK (Open Java Development Kit) という団体のようなものがあります。
http://openjdk.java.net/

おっと JDKという言葉が出てきたので解説します。
JDKというのは、Java SE Development Kitと言ってJavaを開発する上で必要なものです。
これがあれば、オラクル社の Javaを使わなくても大丈夫!

というはずですが。。。

OpenJDKは、サポートが、半年単位
半年たったら、次のバージョン、そのバージョンのサポートが半年

というように
Long Time Support(LTS)が今の所、発表されていません。

つまり、バグやセキュリティを最新の状態で対応するには、半年ごとにOpenJDKの入れ替えが必要となるのです。
そんな、理不尽な・・・ 言われても Java自体は、オラクル社のものなので
そういう取り決めと思ってください。

正確に言うとオラクル社のJava SEも半年単位でバージョンアップが用意されるスケジュールになっていますが、一つのバージョンに対して Long Time Support(LTS)を有償で対応しますよ。
という仕組みです。

つまりOpenJDKには、Long Time Support(LTS)がないのでオラクル社のバージョンリリースにあわせなければならないのです。

大人の事情というやつですか・・・

Long Time Support(LTS)のOpenJDKも登場してきました。

2019年追記

システムをそれらに切り替えることができれば、問題は解決ですが、いづれにしろシステム移行には、費用はかかります。

Javaが多くのシステムで採用されてきたのは、Oracleという後ろ盾があったからです。
OracleのJavaという共通プラットフォームで安心して開発してきたものが、有料になりました。

「じゃ、おカネを払いたくないのでオープン系のJavaに移行すればいい」
企業として簡単な話ではありません。

ただし、IBMのようなベンダーならば、おまかせできると思います。
だからベンダーは、うちのJavaを使ってくださいね!とアピールしてきたわけです。

無償なら半年バージョンアップでもええじゃないの?

いいえ! よくありません。
バージョンアップするということは、試験をしなければならないのです。

半年ごとにJava関係の試験をやり直すということは、どれだけコストが掛かるかわかりません。

個人のシステムなら多少問題が起きても 自己責任で済みますが、
企業、特に金融系など莫大なおカネがやり取りされるシステムでは、自己責任ではすみません。

となると事実上、オラクル社にサポート料を払い続けるしか道はないのです。

Androidは?

Javaが使われているAndroidは、どうなの?

ご安心ください。

Androidの開発元のGoogleは、OpenJDKに移行済みです。

さらにこれからの開発は、JavaではなくKotlin(コトリン)という言語に移行してゆくようです。
また、サーバー関連もJavaからの移行がすすみつつあります。

そして、今、もっともおカネを取れる開発言語は、Go(ゴー)というレポートもあります。
Go(ゴー)は、Googleがが設計したプログラム言語です。

Oracle社の狙い

企業が採用するかどうかは、単に費用がかかる、かからないだけでは決定されません。
大金を投じて出来上がったシステムが、急に有料といわれても困るわけです。

例えば、銀行のようなシステムをOracleのJavaで開発したとしましょう。
「Oracleからカネを取られるから、おカネのかからないJavaに切り替えましょう。」
と言ってもその費用は、莫大なものになります。

Oracle社が狙っているところは、そういうところです。

ですから、OpenJDKとの棲み分けができています。

今後、銀行などの巨大プロジェクトでJavaでの開発は、エンジニアとして悩むことでしょう。
Oracle社が、値上げと言ったら逆らえないからです。
※データベースのサポート料金の値上げを考えたら、わかりますよ。

これらのことを考えると企業がシステムを構築するときにどうするか?
ということです。

Javaのコミュニティが中心になって進めるのは、全然OKなんですが、Oracleという金看板のもと無料で使えたものがなくなる意味はかなり大きい。

個人や中小企業での開発ならばJavaは、その資産から考えても有望でしょう。
しかし、企業は、コスト優先に考えるので、そんな面倒ならば、「できあいのもの」に踏み切るところが多いはず。

そうなると、ERP(Enterprise Resources Planning)に切り替える企業が増えてくることが予想されます。
こうなると 多くのSIerや、下請け企業に打撃が来ることになります。

そうなると、もうJavaがどうとか言っている場合ではなくなる可能性もあるのです。

Javaプログラマーは、違う言語を習得せよ

Javaは、無くなるとは思いませんが、縮小してゆくことは間違いないと思われます。
なによりJavaのプログラマーが多すぎます。

Javaのスペシャリストとしてやってきた人は、Javaだけでやっていけるほど IT業界は、甘い時代ではありません。

こんなこと書くと、Javaスペシャリストの人からお叱りを受けるかも知れませんが、いつまでも同じ環境にしがみついていると危険です。

ここで次の一手を考えないとエンジニアとして生き延びることはできません。
どのプログラム言語が成長するかは、以前ブログに書いてあるので後でそちらを読んでみてください。

今は、やはりPythonとなるのか?

Python

Python(パイソン)は、AIで有名になったプログラム言語ですが、サーバ側の開発言語としても有望です。

コードがシンプルで扱いやすく設計されており、さまざまなプログラムを分かりやすく、少ないコード行数で書けるといった特徴を持っています。
AIだけではなく、多方面に使われることは必須、ギャラの面でも急上昇中。

固執していたのでは明日はない

一つの言語や環境に固執することは、自分の幅を狭くします。

今は、Javaの開発が多くても いつ、なくなってしまうかも知れません。
Javaは、これまでの資産が多いので簡単にはなくならないと思うけど、柔軟な感覚を養うべきです。

どの言語が優れているとか、優秀だとか という思想は危険です。

まとめ

そして、オラクル社が、手にしているもう一つの大きな「オープンソース」
MySQLというデータベースも今は、無料ですが、いつ

「明日からカネを取るぞ」

と言ってくるかも知れません。

ITの世界は、多数を掌握したものだけが、勝利者となる世界で、掌握したものに逆らえない状況が発生するのです。

その世界でエンジニアとして生きてゆくためには、自己投資と研鑽を積むしかありません。

Javaというぬるま湯に使っているとJavaの衰退とともに消えてしまいます。
先を見通す能力がエンジニアとして成功する鍵となるでしょう。

Javaに関しては、すでに世界中で多くのシステムが可動しているので「今すぐなくなる」わけではないでしょう。
保守作業もあるのでJavaプログラマーの需要はあると思います。

しかし、カネを儲けようと思うのなら、複数のシステム、プラットフォームに精通する必要はあります。

スポンサーリンク

あとがき

以前、Javaに関してのブロクを書いたのですが、よりわかりやすく書いてみました。
お時間があればこちらも読んで見てください。

 

Java is Still Free

Java is Still Free, but it costs money to keep quality.

「Javaは、まだ無料ですが、品質を維持するにはコスト=おカネが、かかります。」

開発するには、無料ですが、商用化するにはカネがかかるんですよ!
世界のJavaのトップクラスが執筆したJava is Still Freeというドキュメントを読んでください。
https://docs.google.com/document/d/1nFGazvrCvHMZJgFstlbzoHjpAVwv5DEdnaBr_5pKuHo/edit

スポンサーリンク

-IT小僧の時事放談
-,

Copyright© IT小僧の時事放談 , 2020 All Rights Reserved Powered by AFFINGER5.