「あの人は今?」みたいにJavaのことを言うのは失礼ですよね。今も第一線で活躍している人は「あの人は今?」の対象ではないでしょうから。
でも、第一線の舞台が違うだけで、「あの人は今?」の対象者も実際には変わらず活躍しているわけだから、たとえばCOBOLあたりだったら、「あのCOBOLは今?」と言うのにふさわしいのかもしれません。表舞台からは消えたように見えて、実はCOBOLも現役で活躍してますから。
Javaはまだ完全に表舞台、それも舞台の中央にいます。たとえば、TIOBE指標というプログラミング言語の人気ランキングでは昨年も1位で、これまで3位以下に落ちたことが一度もないらしいです。
1995年の誕生以来ずっと表舞台の中央で活躍し続けている主な理由は、次のように考えられています。
- オープンソースで複数のベンダーと多くのユーザーにサポートされ続けてきたから(たとえば、サンマイクロシステムズが単独でサポートし続けていたら、ここまで長続きは不可能だったでしょう。業界全体で支える体制が、ニーズの移り変わりに合わせた発展を可能にしました)
- ネットワーク環境に最適な設計で、クライアント環境に依存せずにサーバーサイド アプリケーションの開発に適していたから
- ハードウェアの発達(高速化と低廉化)とインターネットの発達がJavaと同時代に進行したから
- 広範に受け入れられて定着した技術は、そう簡単には換えられないから(ベンダーは常に新しい技術を目指しますが、生産現場がそれに追いつくには相当な年数がかかります)
理由2と理由3はだいたい同じことを指していて、要するに『時代にマッチした』のひと言が、これまでJavaが25年間歩んできた華々しい道のりを如実に表しています。
しかし、Javaが今、岐路に立たされているのも事実です。TIOBEの人気ランキングでは1位でも、たとえば「就職活動をする人が持っていると有利な技術」となると、どうでしょうか。決してダントツとは言えないようです。今の若者にとってのJavaは、Javaプログラマーが引く手あまただった頃のCOBOLのようだと揶揄するネット記事も見かけました(米国の事情です)。
ネット検索で“Java still”と入力すると、Is Java still relevant?(Javaはまだ適用性があるのか?)とかIs Java still worth learning?(まだ学ぶ価値があるのか?)などの見出しが上位にヒットし、How dead is Java?(どのぐらい死んだのか?)という記事まであります。いちいち中身を読んでないので、内容は「実はそうでもないんだよ」的な、注目を引くための反語タイトルの可能性も十分あります(現に今書いているこの記事もその類っちゃあその類です・・・)。
王座に君臨し続けているはずのキングJavaが、そんな言われようをしてしまう理由は、クラウド ネイティブの潮流が大きいです。Javaは、強力なプロセッサと豊富なメモリーを擁する環境でJVMを常時稼働し続けることによって、ビジネス アプリケーションを機能させます。JVMには、稼働し続けたまま最適化し、アプリケーションの更新やコンフィギュレーションの変更もダイナミックに反映させる機能が備わっています。それはJavaが長年活躍し続けるうえで、時代に合わせて発展してきた成果でもあるのですが、クラウド ネイティブの時代には合っていません。ネイティブじゃないからダメなんて、レジェンドに対するリスペクトが足りない気がしますが、プロの世界は甘くないです。ともに闘ってきたワンチームなのに・・・
はなしをIT環境に戻すと、ビジネス アプリケーションをマイクロサービスでコンテナ化した場合、サービスに更新があればコンテナ イメージが最新情報にもとづいて再生されます。つまり、Kubernetesが旧バージョンを廃棄して、その都度、新しいPodを起動する(しかも、それがしょっちゅう行われる)環境では、Javaの重さが大きな足枷になるし、せっかくのダイナミックな特性も台無しです。
しかし、そんなクラウド ネイティブとは相容れないJavaを軽量化し、Kubernetesによって繰り返される再起動にも対応できるようにする試みも着々と進行しています。たとえば、Red HatのQuarkusがそれです。
要するに、Javaが25年間も第一線で活躍してきた実績は伊達じゃないということです。なぜ活躍し続けられたかの理由をもう一度見なおしてみてください。市場動向はごく自然に以下のサイクルをたどっても何ら不思議ではありません。
現場は、すでに業務システムに定着しているJavaを簡単に捨てることはできない
→ それを時代のニーズに合わせてサポートすれば儲かるはず
→ Javaをサポートする複数ベンダーがこぞってJavaを進化させる
→ 現場はやはりJavaを捨てることなんてできない
この経済の循環がJavaをさらに長生きさせることでしょう。もはや、神の見えざる手がJavaを守っているとさえ言っても過言ではない、かな・・・
関連するトピックス:
- Exportメソッドの同期化【Javaチャート・グラフ作成ツールEspressChart】
- Query builderのXML data registry [重要]【Java対応レポート・帳票ツールEspressReport】
- ライセンス・キー登録後のespressmanagerのエラー【Javaチャート・グラフ作成ツールEspressChart】
- fontconfigファイルを編集してJAVAアプレットの文字化けを解消する
- Y軸最大値最小値のカスタマイズと注意点【Javaチャート・グラフ作成ツールEspressChart】
- EspressChartの自動調整機能により決定した値を利用するには
- PureJava Install Versionのインストール手順【Javaチャート・グラフ作成ツールEspressChart】
- JDK 1.4.1のHeadlessオプションについて【Javaチャート・グラフ作成ツールEspressChart】
- デザイナー、APIを用いた第1Y軸と第2Y軸の左右入れ替え方法
- データ一部欠落時の折れ線グラフの表示について【Javaグラフ・チャートツールEspressChart】