プログラミング言語の将来性の評価方法

ウェブよもやま話

プログラミングに興味のある方向けに「プログラミング言語の将来性を評価する方法」をご紹介します。

どうも Google 検索などで「プログラミング言語 将来性」といったキーワードでの検索ボリュームが多いらしく、プログラミングスクール系の会社がこぞって「プログラミング言語 将来性」をターゲットにした SEO 記事を書いています。 興味本位で検索上位の記事を覗いてみたところ、その多くは

  • 論拠があいまい
  • プログラミングを知らない人 or ほぼ初学者が書いた

な記事でした。

そのような記事を目にしても、ある程度知識のある方であれば「いい加減なこと書いているなぁ」と思うだけですが、初学者・未経験の方が読むと真に受けてしまうこともありそうです。

ということで、不幸を少しでも減らすべく、本物の現役エンジニア(笑)である私がプログラミング初学者の方に向けてプログラミング言語の将来性の評価方法をご紹介します。

そもそも「将来性」とは?

「プログラミング言語の将来性」という文脈で考えるとき、「将来性」にはおおよそ次のような意味が含まれているかと思います:

  • 近い将来に廃れる可能性が低い …「使い続けられそう」
  • 今後需要が高まる可能性が高い …「年収が上がりそう」

この前提のもとで以下お話を進めます。

プログラミング言語の将来性の評価方法

早速結論ですが、プログラミング言語の将来性を評価するいちばんの方法は 統計データを見ること です。

プログラミング言語の人気や需要が近い将来どうなっていくのかというのは多くの人の意見の総和として決まってきます。 そのため、将来性の評価は「多くのプログラマがどう考えているか」を参考にして行うのが合理的です。

統計データを見るのがどうしても嫌 or できないなら、次によい方法は ある程度経験のある、信頼できるプログラマの意見を参考にすること です。

ただし、ソフトウェア業界の広さから見て個人が観測・経験可能な範囲というのは非常に狭いです。 どれだけ経験が豊富なプログラマでも「プログラミング業界全体をひとしく見渡せる」なんてことはありません。 そのため、プログラマ個人の意見を参考にする場合は

  • 属性の異なる人たちの中から
  • 少なくとも 5 〜 10 人の人

の意見を参考にするのがよいと思います。

逆に次のような方法でプログラミング言語の将来性を評価するのはよくありません:

  • 根拠があいまいな記事やツイートを参考にする
  • プログラミングの経験が無い人や浅い人の意見を参考にする
  • 統計学の基礎を理解しない人の意見を参考にする

改めて考えれば当たり前のことですが、プログラミング言語の将来性は多くの人の意見・行動の結果として決まるので、多くの人の意見が反映された統計データを参考にするのがいちばんです。

では具体的にどんな統計データが使えるのかというところで、信頼性が高いと私が思うものを以下ご紹介します。

  • A) アンケート結果
  • B) TIOBE インデックス
  • C) Google Trends
  • D) GitHub リポジトリ

A) アンケートの結果

プログラマを対象にして行われた大規模なアンケートの結果です。 たとえば、有名なものとして Stack Overflow 社と JetBrains 社が毎年行っている開発者向けアンケートがあります:

記事執筆時点で最後に実施されたアンケートの回答者数を見ると、それぞれ次のようになっています:

  • Stack Overflow の 2022 年のアンケート: 7 万人以上
  • JetBrains の 2021 年のアンケート: 3 万人以上

この種のアンケート結果を見るときには、アンケート自体の信頼性がどれだけあるのかを最初に評価するようにしましょう。 「 garbage in, garbage out 」なので、信頼性の低いアンケートに惑わされてはいけません。 具体的には以下のようなポイントをチェックするべきです:

  • アンケート実施主体の信頼性(中立性や透明性など)
  • アンケート方法の信頼性(実施対象や方法の適切さなど)
  • 回答者数(十分多いか)

アンケート結果において次のような評価ができる言語は相対的に将来性が高いと考えられます:

  • 使っている人が多い言語
  • 今後学びたいと思う人が多い言語
  • 嫌っている人が少ない言語
  • 利用者の収入が高い言語

ただし、「利用者の収入が高い言語」について見るときは注意が必要です。 「言語の選択」と「収入の高さ」の間に因果関係があるとはかぎりません。 多くの場合、両者の関係は因果関係ではなく第 3 要因に影響された相関関係だと思います。

B) TIOBE インデックス

TIOBE という会社が公表しているプログラミングコミュニティインデックスです。 「プログラミング言語の人気度」をテーマにした記事の多くがこの TIOBE インデックスを情報源として使っています。

年単位のトレンドグラフ:

TIOBE インデックス

公式サイトによるとその趣旨は次のとおりです:

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. It is important to note that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

抄訳:

TIOBE プログラミングコミュニティインデックスは、プログラミング言語の人気度を測るものです。 インデックスは毎月更新されています。 レーティングは「熟練エンジニア」「学習コース」「サードパーティベンダー」の数に基づいて行われます。 人気の検索エンジン( Google 、 Bing 、 Yahoo! 、 Wikipedia 、 Amazon 、 YouTube 、 Baidu 等)がレーティングの計算に使われています。 重要なポイントとして、 TIOBE インデックスは「どのプログラミング言語がベストか」や「最も多くのコードが書かれた言語はどれか」を示すものではありません。

ただし、 TIOBE インデックスを見るときには以下のポイントに注意する必要がある:

  • どちらかというと「未来」ではなく「過去」の蓄積量がわかるものである
  • 月次のトレンドには細かなブレがあるため月単位ではなく年単位のトレンドを見るのがよい
  • 具体的な評価方法は不明である……

Google Trends における各言語の名前の検索ボリュームとトレンドも参考になります。

試しに Python ・ PHP ・ Java の 3 つで比較したときのグラフは次のようになりました。

Google Trends 結果

なお、ここでわかるのはあくまでも検索ボリュームであり、必ずしも「検索ボリューム=人気の高さ」というわけではないのでその点に留意しながら見る必要があります。

また、プログラミング言語の中には Go や Swift や R のように名前が別の意味で使われることの多い言語もあり、これらの場合は正確なデータの把握が難しいのであくまでも参考値として見るべきです。

D) GitHub リポジトリ

GitHub におけるスター数やフォーク数の多いリポジトリの情報です。

たとえば、 GitHub 内の検索フォームに starts:>=10000 size:>=5000 と入力するとスター数 3 万、サイズ 5000kb 以上のリポジトリを確認できます:

ただし、 GitHub のスター数はあくまでも累計数であり、そこに時間軸の情報は含まれていません。 中には「過去に人気を博して多くのスターが付いたが近年は使われていないリポジトリ」などもあるので、評価するときには時間軸を加えて見る必要があります。

以上です。 これらはあくまでも例であり、これらの他に信頼できる統計データが無いという意味ではありません。

なお、今回ご紹介したデータはいずれも世界全体のものです。 日本国内の傾向は世界とは少し異なるので、国内限定の状況を知りたい方は国内のデータにあたってください。

ちなみに、今回ご紹介したのはあくまで私の個人的な意見です。 ぜひ鵜呑みにはせず、異なった意見も参考にするようにしてください。


アバター
後藤隼人 ( ごとうはやと )

Python や PHP を使ってソフトウェア開発やウェブ制作をしています。詳しくはこちら