派遣で働くエンジニアのスキルアップを応援するサイト

PRODUCED BY RECRUIT

サクッとわかるITトレンド10月号:Javaで開発するプログラマに将来性はあるのか

IT業界にいると「ちょっと気になる」そんな話題をサクッと解説する本連載。
第1回の「Pythonははぜこれほど人気なのか」という記事は覚えているでしょうか?
近年、書店ではPythonの本が急増し、インターネット上の記事でも「年収が高い言語」としてPythonが取り上げられることもあります。このような情報に接していると、Javaはもう古い言語で将来性がないのかもしれないと考える人がいるかもしれません。しかし、現実にはJavaが使われなくなることはありません。その理由と、今後に向けての考え方を紹介します。

【筆者】
増井 敏克さん
増井技術士事務所代表。技術士(情報工学部門)。情報処理技術者試験にも多数合格。ビジネス数学検定1級。「ビジネス」×「数学」×「IT」を組み合わせ、コンピューターを「正しく」「効率よく」使うためのスキルアップ支援や、各種ソフトウェアの開発、データ分析などを行う。著書に『エンジニアが生き残るためのテクノロジーの授業 ~変化に強い人材になれる技術と考え方~』『IT用語図鑑[エンジニア編]』(以上、翔泳社)『ITエンジニアがときめく自動化の魔法』(ソシム株式会社)などがある。

プログラミング言語の前にシステムの種類を考える

プログラミング言語を学ぶとき、世の中のトレンドを見る人は多いでしょう。毎年のようにさまざまな「プログラミング言語ランキング」が公開されていますし、Qiitaなどの投稿サイトでも言語別のタグを見るとトレンドがわかります。

注意しなければいけないのは、このようなランキングは「対象のシステムやアプリで分類されていない」ことです。たとえば、Webアプリを作るときにC言語を使うことはほとんどありません。Windowsアプリを作るときにSwiftを使うこともありませんし、iPhoneアプリを作るときにJavaを選ぶこともありません。それぞれのシステムやアプリには「向いているプログラミング言語」があるので、それを考慮せずにランキングを見ても意味がないのです。

システムが求めるものを理解するため、たとえば「企業の社内システム」と「個人が遊ぶスマホアプリ」を比べてみましょう。いくつかの項目で比べると、次の表のような違いが見えてきます。

このように、開発するシステムやアプリによって、求められるものがまったく異なります。プログラミング言語を選ぶ前に、想定するシステムに求められる要件を検討する必要があるのです。

Javaが使われているところ

要件を考えた上で、どのようなプログラミング言語が向いているのかを考えてみます。まずはプログラムが動く環境から考えると、それぞれの環境では多くの開発者が使っているプログラミング言語があります。たとえば、Windowsアプリの開発ではC#、iPhoneアプリの開発ではSwift、中小企業のWebサイトではPHP、Excelの自動化ではVBA、といった具合です。

最近では、iPhoneとAndroidの開発を1つのソースコードで書くためにXamarin(C#)やReact Native(JavaScript)、Flutter(Dart)などが使われることもありますし、WindowsでもmacOSでも動くデスクトップアプリの開発にElectron(JavaScript)が使われることも増えています。

そんな中でJavaが使われているところを考えると、比較的大規模な社内システムやAndroidアプリの開発が挙げられます。実は、上記の表で比較した2つのシステムを考えると、両方の開発にJavaが使われているのです。これはJavaという言語が幅広い分野に対応できる言語だということを示しています。

大規模なシステムにおけるJavaの優位性

Javaが大規模な社内システムの開発に使われる理由として、「処理速度が速いこと」や「企業向けの取り組み」が挙げられます。

中小企業のWebアプリであれば、PHPやRuby、Pythonなどのスクリプト言語で十分なことは珍しくありません。扱うデータ量も少なく、一つひとつの処理が小さいため、それなりのアクセス数でも処理できます。小さな処理ではスクリプト言語でもコンパイル型の言語でも性能にそれほど差がなく、それよりも変更が容易なことを理由にプログラミング言語を選ぶことも多いものです。

一方で、大企業のシステムでは、扱うデータ量が膨大です。処理も複雑なため、プログラムの処理速度に加え、マルチスレッドでの処理が安定して動作することが求められます。大企業のシステムでは仕様を明確に定められ、細かな変更が少ないことも特徴で、Javaのようなコンパイル型の言語が向いています。

企業向けの取り組みとして、複数のベンダーによる協力や言語仕様の安定があります。企業のシステムが数年から数十年という単位で使われることを考えると、短期間で仕様が変わり、互換性が確保できない言語は使いにくいものです。しかし、Javaは古い環境も長くサポートされ、新しい環境に移行するときも互換性が確保されているため、安心して使用できるのです。

Javaだけを学んでいればよいのか

上記のように書くと、大企業向けのシステム開発に関わっているのであればJavaは将来も安泰だと思ってしまうかもしれません。しかし、IT業界はどんどん変わっていきます。スクリプト言語と比べてJavaが高速なのは事実ですが、コンピュータの性能の向上により、その差に注目する意味がなくなりつつあります。
また、時代が変化する中で、企業に求められるシステムも変わっています。安定したシステムを長く使うのではなく、「新しいシステムを組み合わせて時代に合わせて変える」という使い方が広がるかもしれません。

Javaが近い将来に使われなくなることは考えにくいとはいえ、それだけに特化するのではなく、新しいプログラミング言語や技術にも注目しておく必要があると言えるでしょう。

・・・

いかがでしたか?変化の激しいIT業界では、学び続ける姿勢がとても大切ですよね。伸ばしたい自身のスキルを、いろいろな側面から考えてみることで、さらに活躍できるエンジニアになれるはず。

▼これまでのサクッとわかるITトレンド
Pythonはなぜこれほど人気なのか
大人も自由研究!IoTでプログラミングを体験しよう
サイバー攻撃に備えている?その対策は本当に有効ですか