BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ アーティクル Java InfoQ トレンド報告 — 2020年9月

Java InfoQ トレンド報告 — 2020年9月

キーポイント

  • Cloud deployment and containerization is the megatrend in the industry, and Java is no exception.
  • GraalVM and static compilation are key building blocks to the acceleration to the cloud. Project Leyden could be an interesting new direction for this trend, but this is very much in the early stages.
  • Quarkus is attracting a lot of attention and has moved into the Early Adopters space very quickly. Partly, it draws up other trends in the industry and packages them into an easier-to-use version that addresses application use cases.
  • Java 11 adoption has now reached roughly 20% of production deployments, with Java 8 making up virtually the rest of the market—there has been no significant deployment of non-LTS releases.

原文(投稿日:2020/09/30)へのリンク

この記事では、InfoQ 編集部が現在どのようにテクノロジーの採用と Java の周辺技術の新たなトレンドを見ているかを要約している。我々は Java 言語、Kotlin や Scala などの関連言語、Java 仮想マシン (JVM)、Javaベースのフレームワークやユーティリティに焦点を当てている。Java の新バージョンの採用などコアな Java の動向や、Quarkus や MicroProfile のような(Webベースなどの)フレームワークの進化についても議論する。

この報告書の主な目的は次の 2 つがある。

  • 中長期的な技術投資の意思決定を行う際に、技術リーダーを支援する。
  • 個々の開発者が、学習やスキル開発のために貴重な時間とリソースをどこに投資するかを選択するのを支援する。

Java のトレンドレポートを発表したのは、今回で 2 回目だ。2006 年に InfoQ が始まって以来、このトピックは十分にカバーされている。そして、長年にわたって Java と JVM の動向を内部で追跡してきた。2019 年のレポートはこちらからご覧いただける。

InfoQ(およびQCon)の現在および将来のトレンドをナビゲートするために、Geoffrey Moore 氏が同名の著書の中で提唱したテクノロジーの成功のための「キャズムを越える」メンタルモデルを活用している。

Moore 氏がアーリーマーケットと呼んでいたものに合うアイデアを見極めるようにしている。ここでは、「顧客ベースは、技術愛好家や先見の明のある人たちで構成されており、機会や迫り来る問題のいずれかを先取りしようとしています。」

私たちが観測可能な主要な市場はアイデアだ。それは幅広い主流の採用へ超える可能性がある。もちろん、これは定義するのが難しいことである。そして、地域市場の違いは確かに存在する。ある技術は、ある産業や地域の市場では採用曲線上の一点に置かれ、別の市場では全く異なるどこかに置かれることがある。

例えば、サーバーレスや FaaS 技術を積極的に推進している企業は、Java スタティック・コンパイルやプロセスの起動時間とフットプリントの短縮を約束するその他の技術の調査と採用をさらに進めている可能性がある。

昨年からの注目すべき変化としては、オラクルの Java バイナリの使用が激減したことが挙げられる。これは、おそらく予期されたことだ。昨年のサポートとリリースモデルの変更は、トレンドレポートに完全に反映されるまでに時間がなかった。 しかし今ではその影響を評価するために 1 年以上の時間があった。

現在、市場では、オラクルの機能リリースの 6 ヶ月間のアップグレードサイクルを採用することを選択していないことがわかる。その代わり、Java ベンダーはほとんど完全に LTS リリースに固執している。それはつまり Java 8 と 11 だ。同様に、これはオラクルがリリース後 6 ヶ月以上は無料のJavaバイナリを提供していないことを意味する。市場では、Oracle 以外のバイナリプロバイダへの依存度が高まっている。AdoptOpenJDK が主な受益者で、Azul と Amazon がそれに続いている。

もう一つの顕著な傾向は、業界全体のメガトレンドの反映である。ほぼ全てのものが以前よりも早くクラウドへ移行している。この方向での採用はすでに好調だったが、今ではさらに顕著になっている。Covid-19 が業界に課した独特の圧力は、ここでも間違いなく要因となっている。

これは、AWSをはじめとするクラウドプロバイダーの採用が増えたことだけでなく、コンテナ化されたワークロードの台頭や、より小さなフットプリントのサービスを望む声も見て取れる。これは、Quarkus、Micronaut、Spring Boot などのフレームワークの人気が高まっていることにも表れている。これらはいずれもクラウドネイティブで Kubernetes と親和性が高い。そして、いずれも人気が高まっているが、明確なマーケットリーダーはまだ現れていない。

前後関係のために、2019 年の内部トピックグラフは以下のようになっている。2020 年版は記事の先頭にある。

この議論の投稿者は、以下の方達だ。

  • Ben Evans 氏、InfoQ Java トラック・リード・編集者
  • Uday Tatiraju
  • Erik Costlow
  • Mike Redlich

以下は、InfoQ Java 編集者数名とさまざまな Java チャンピオンとの間で行われた、対応する議論を軽く編集した要約である。これは、採用グラフ上のいくつかのテクノロジーの推奨位置について、より多くの文脈を提供している。

GraalVM

Justin Lee 氏(Red Hatのプリンシパルエンジニア)

GraalVM を直接使うというのは、ほとんどの企業ではかなりハードルが高いと思います。これらの詳細の多くを処理する Quarkus や Micronaut を介してそれを使用することは、おそらくほとんどの人が取るべきルートです。

Johan Vos 氏(Gluon共同創業者)

私たちは Gluon Substrate で GraalVM のネイティブイメージを活用して、モバイルおよび組み込み用のネイティブアプリを作成しています(あとはデスクトップ、つまりJavaクライアント全般)。

開発者は 100% Java と JavaFX のコードを書きます。そして、すべてのコード、依存関係、ネイティブライブラリ、リソースは、IPA または APK でコンパイル/リンク/パッケージ化されており、ストアにアップロードできます。(プライベートネットワークで使用されている場合もあり、お客様が Java を使用したいエリアでは人気があります)これをお客様は本番で使用しています。

モバイルでは、GraalVM のネイティブイメージは、iOS 上で Java を使用できるので、大きな勝利です(iOS では動的なコード生成を許可していません)。また、モバイルでは起動時間が非常に重要で、私が見てきたアプリの起動時間はすごいです。

Roy van Rijn 氏(OpenValue ディレクター)

(ネイティブの Docker イメージとして)本番で GraalVM を使って実験してみました。これは、私たちのシンプルな CRUD Micronaut サービスの 1 つにはかなり効果がありました。なので、私たちはそれをそこに置いたままにしました。より大きなサービスのために(Spring Boot と MQ/messaging を使用して)、私たちは 1 年ほど前にすぐに問題にぶつかりました。しかし、この面でのイノベーションは急速に進んでいます。

Spring GraalVM Native の新しいリリースに伴い、私たちは現在、実験のためのバックログに PoC を追加しています。現時点での私たちのビジョンは、最終的にはすべてのサービスを GraalVM Native イメージに移行することです。スピード(特にクラウドの起動時間)とメモリの使用量は、私たちにとって大きな節約になるでしょう。

Quarkus

Emmanuel Bernard 氏 (Red Hat の功績のあるエンジニア)

私たちが目にする主な使い方は、Quarkus のマイクロサービス(といってもおもちゃのサービスではないので、焦点の意味ではマイクロと考えてください)と、いくつかの function as a service です。

私は、主に未開発プロジェクト、他のマイクロサービスの移植、またはアプリ開発スタックを再考することを決定する組織を見てきました(必要に応じて Java を放棄する準備ができていることも含めて)。

私たちが見ているのは、人々がレガシーアプリの一部を取り出して、必要なものを少しだけ適応させていることです。しかし、Quarkusは、GraalVM ネイティブイメージの制限を大幅に遮蔽します。

Erik Costlow 氏(InfoQ のJava 編集者)

Quarkus は、Jakarta EE の最高の部分、GraalVMの最高の部分、クラウドの最高の部分をピックアップしてひとつにまとめています。このフレームワークは、迅速なリロード、サーバーレスのためのコンテナ作成の自動化、プラグインのエコシステムで他の多くのシステムに接続します。その上、ドキュメントには各プラグインの説明が明確に書かれている。未開発プロジェクトや既存のプロジェクトでも利用しやすくなっています。

私が最も気に入っているのは、Quarkus がしっかりとした基盤を提供してくれるので、開発者は、コードやアプリケーションがリソースとどのように相互作用するかという技術的な作業ではなく、自分のコードやアプリケーションを特徴的なものにする側面に集中できるということです。開発者には権利がありますが、もっと深いところまで行く義務はありません。

Java 11

Uday Tatiraju 氏(オラクルのテックリーダー)

この8ヶ月間、私と私のチームは、JDK 11 と JPMS を活用した私たちの検索プラットフォーム全体の再設計と書き換えを行いました。もちろん、サードパーティのライブラリを使って JPMS を利用する上での課題もありました。私たちは、パッケージ分割、リフレクション、unsafe のコードなどの問題に対処しなければなりませんでした。

しかし、JDK 11 を使用することで、多くのプラス点がありました。JDK 11 を使用することで、私たちはサードパーティのライブラリへの依存度を減らせました。例えば、JDK 内の HTTP クライアントライブラリは、人間工学に基づいた機能豊富なものになりました。私たちの場合は、Apache HTTP クライアントライブラリへの依存を排除しました。

また、少なくとも Oracle 内の他のチームでは、JDK 11の採用が増加しています。また、Tomcat、ZooKeeper、SLF4J など、多くの人気のあるサードパーティのフレームワークやライブラリが JDK 11 と JPMS をサポートします。

Ben Evans 氏(New Relic & Java Track Lead, InfoQ のプリンシパルエンジニア)

お客様が本番システムから送信するデータからの私たちの最近の調査では、(現在のところ)約 20% のお客様が本番でJava 11を使用しており、Java 8が残りの市場の大部分を占めていることがわかりました。Java 7 以前は 1~2% 程度で、LTS 以外のリリースを合わせたものよりも大きい。

これに関連して、OpenJDK への方向転換が進行中で、今年の大きなトレンドの一つとなっています。AdoptOpenJDK (現在は Eclipse Adoptium に改名)は、Java 11 と OpenJDK 全般のための傑出したディストリビューションです。そして、それらは Oracle から実質的な市場シェアを奪っています。

OpenJDK 11 は素晴らしいリリースです。私たちは社内ではバックエンドサービスに熱心に採用しています。

Brian Vermeer 氏(開発者アドボケイト、Snyk、VirtualJUG共同リーダー)

昨年 2 月に発表された私たちの 2020 年JVMエコシステムレポート(開発者を対象としたインターネット調査に基づく)では、人々が本番環境で Java 11 に移行しており、現在約 25% の人が Java 11 を使用していることが明らかになっている。しかし、大多数がいまだに Java 8 を使っているのは注目に値する。ほとんどの人(55%)の計画では、長期リリースに固執することになっています。しかし、回答者の 22% は、リリースごとにアップグレードするかどうかを決める予定だと報告しています。しかし、開発者が新しいバージョンにアップグレードしない主な理由は単純です。それは、現在の設定で問題なく動作するということです。

当社の調査によると、Oracle JDK が依然として支配的であるにもかかわらず、他のOpenJDKプロバイダーへの大きなシフトが見られます。4 人に 1 人の開発者が AdoptOpenJDK ディストリビューションを選択しています。

JVM 上では今でもJavaが圧倒的にメインの言語ですが、Kotlinの採用は途方もなく伸びました。この時点では、Koltin は JVM 上で Scala と Clojure を抜いて2番目の言語となっています。これは、Koltin が Java とシームレスに統合されているからでしょう。

Trisha Gee 氏(JetBrains の Java アドボカシーチームリーダー)

私は間違いなく Java 11 の採用が増えているのを見ています(私たちの調査では、昨年より 10% 多いことを示唆しています。しかし、開発者は複数のJVMを使用しているので、これらの割合は奇妙なものです。ですから、100%にはなりません)。すべての調査と逸話的な証拠は、開発者の妥当な集団が 11 を使用していることを示しています。

それ以外では、私が話している Java 開発者は、まだ Java 8 の世界に固執していると言えるでしょう。彼らの多くは、前に進めないのです。なぜなら、Spring Boot などの最新のフレームワークを使っていないからです(私が話をする人たちからは Spring Boot が圧倒的に人気のフレームワークです)。そして、アップグレードするために「神からの許可」が必要な古いアプリケーションサーバに引っかかっているためです(あなたはその取引を知っているでしょう)。その他の傾向ではないですが(もちろん、あなたが聞かなかったことしてください):人々はモジュールシステムを使用していません。またはそれに移行していません。とは言うものの、それはエンタープライズの世界では問題ありません。その一方で、モジュール化と Java 9 は 11 への移行の邪魔になっていないようです。

Microprofile

Mike Redlich 氏(InfoQのJavaエディタ)

MicroProfile コミッターたちは、MicroProfile 仕様プロセスで MicroProfile 作業グループの形成に取り組んできました。その結果、当初は今月出荷予定だったMicroProfile 4.0のリリースが遅れてしまいました。

私たちの貢献者の視点は、物語の一部を語っているに過ぎない。そして、Java エコシステムの異なる部分と地域の異なる部分では、非常に異なる経験をしているかもしれない。私たちのトレンド記事で表現されている見解は、決定的な声明ではなく、議論の出発点と見なすべきだ。そして、業界の方向性についてのオープンな議論への招待状とするべきだろう。

著者について

Ben Evans 氏は、JVMパフォーマンスの最適化を行う jClarity 社の共同創業者だ。LJC(London's JUG)のオーガナイザーであり、JCP 実行委員会のメンバーでもあり、Java エコシステムの標準化を支援している。Ben は Java チャンピオンであり、3 回 JavaOne ロックスタースピーカーになった。「The Well-Grounded Java Developer」、「Java in a Nutshell」の新版、「Optimizing Java」の著者でもある。彼は Java プラットフォーム、パフォーマンス、アーキテクチャ、同時実行性、スタートアップ、および関連トピックについての常連スピーカーだ。Ben は、講演、教育、執筆、コンサルタントとしての仕事をすることもある。

Ben Evans 氏は次のイベントを主催している "Java:Delivering Continual Innovation in Mature Software Ecosystem"。これは QCon Plusで実施される (11月4日~18日の仮想カンファレンス)。 
このトラックでは、成熟したソフトウェアエコシステムの中で大きなイノベーションを起こし続けることの意味を探る。そして、どのようにJava がクラウド、コンテナ、そしてこれまで以上に多様化するソフトウェアの世界で、繁栄しようとしているのか、先を見据えている。トラックの詳細はこちらをご覧ください

Uday Tatiraju 氏eコマース・プラットフォーム、検索エンジン、バックエンド・システム、Web およびモバイル・プログラミングで10年以上の経験を持つオラクルの技術リーダー兼プリンシパルエンジニアだ。

 

Michael Redlich 氏は、ニュージャージー州クリントンにあるExxonMobilResearch & Engineering 社のシニア研究技術者で、過去30年間、カスタム科学実験室や Web アプリケーションの開発に携わってきた。また、Ai-Logix, Inc.(現AudioCodes)でテクニカルサポートエンジニアとしての経験もある。同社では、技術サポートを提供し、顧客のためにテレフォニー・アプリケーションを開発していた。彼の技術的な専門知識は、オブジェクト指向の設計と分析、リレーショナルデータベースの設計と開発、コンピュータセキュリティ、C/C++、Java、Python、その他のプログラミング/スクリプト言語などだ。最新の関心事はMicroProfileJakarta EEHelidonMicronautMongoDBなどだ。

Erik Costlow 氏は、Java での豊富な経験を持つソフトウェアセキュリティの専門家だ。彼は Contrast Security と Community Edition のデベロッパーリレーションを運営している。Contrast はセンサーをアプリケーションに織り込んでいる。そして、アプリケーションがそのデータをどのように使用するかに基づいて、セキュリティの脅威を検出する能力を与える。Erik は、Java 8 のセキュリティに焦点を当てたオラクルの主要なプロダクト・マネージャーだった。ハッキングの絶頂期に参加し、2 年間ゼロデイ脆弱性を放置した後に退社した。その間に、企業/商業レベルとコミュニティレベルの両方でJava の詳細を学んだ。また、データセンター/クラウドのパフォーマンス自動化において、Turbonomic の製品管理チームが年収 1 億ドルを達成するのを支援した。また、彼は Fortify static code analyzer の製品管理も担当している。これは開発者がカスタムソースコードの脆弱性を発見して修正するのを支援するツールだ。Erik はまた、データ分析、統計学、暗号学に関するいくつかの開発者向けコースを Packt Publishing を通じて出版している。

この記事に星をつける

おすすめ度
スタイル

BT