どのプログラミング言語が将来的に有望か

2009/01/10

どのプログラミング言語が将来的に有望か。

IT 業界に携わる人であれば誰でも気になることでしょう。

私の現在の専門である Ruby とその他の言語について、統計的なデータに基づいて比較したいと思います。

比較対象は、Web 開発でよく使われる JavaPHPC#PythonPerl とします。


まずは、有名な TIOBE Index のデータ(2009 年 1 月)から。

  • Java (19.022%) (-1.83%) 1位→1位
  • PHP (8.882%) (-0.31%) 4位→5位
  • C# (5.609%) (+0.75%) 8位→6位
  • Python (4.731%) (-0.81%) 6位→7位
  • Perl (4.303%) (-0.94) 7位→8位
  • Ruby (3.149%) (+0.80%) 11位→11位

括弧の中は、現在のシェアと 1 年前からのシェアの変化を示しています。

この数字だけ見ると、C# と Ruby だけが増加しており、私が都合の良いデータを選んできた感じがするかもしれません。

いちおう断っておくと、Ruby は 2007 年 1 月に 10 位、 2007 年 11 月には 9 位にランキングされていたので、順位は少し下がっています。

しかし、2004 年からの変化を見ると、様相が一変します。

  • Java (19.022%) (-4.55%) 1位→1位
  • PHP (8.882%) (+2.57%) 6位→5位
  • C# (5.609%) (+3.81%) 7位→6位
  • Python (4.731%) (+3.61%) 9位→7位
  • Perl (4.303%) (-5.30%) 4位→8位
  • Ruby (3.149%) (+2.99%) 23位→11位

この 5 年間にシェアを伸ばしたのは、C#、Python、Ruby、そして PHP だったということになります。

私の比較対象から外れていますが、実は Delphi (+2.50%)、JavaScript (+1.61%)、Basic (+0.61) もシェアを伸ばしています。Basic には Visual Basic を含みます。


次に、Google Trends です。

使用される検索キーワードのトレンドは、プログラミング言語の注目度を示す指標として意味があるはずです。

ただし、"ruby" をキーワードとすると、宝石や人名の ruby を探している人の分が加わってしまうので、"programming ruby" での検索数で比較します。

公平を期すため、比較対象の言語についても "programming xxx" での検索数を使用します。

以下、青いグラフが Ruby の検索数で、赤いグラフが比較対象言語の検索数を示しています。

下段の小さいグラフは、ニュース参照数です。

Ruby vs. Java

trend-ruby-java

Ruby vs. PHP

trend-ruby-php

Ruby vs. C#

trend-ruby-csharp

Ruby vs. Python

trend-ruby-python

Ruby vs. Perl

trend-ruby-perl

ネット上で Ruby がブレークしたのが 2005 年で、2006 年をピークに下降傾向にあります。

ただし本当に検索回数が減ったのかどうか疑問でもあります。

2006 年頃から、プログラミング言語としての Ruby の知名度が上がったため、"programming" を付けなくても検索でヒットするようになったのかもしれません。

上に掲載したグラフは、全世界を対象にしたものです。

日本を対象にして、Java, PHP, C#, Perl, Ruby を比較したのが次のグラフです。

trend-languages-japan

水色が Java、赤が PHP、黄色が C#、緑色が Perl、紫色が Ruby です。

キーワードとしては "java" などの言語名をそのまま使用しました。

Google Trends は 5 つまでしか同時にグラフが引けないので、Python を省きました。日本での Python の検索数は Ruby の半分ぐらいです。


もう少しビジネス的な統計を見てみましょう。

求人情報サイト indeed の Job Trends を使って比較してみます。

job-java-csharp-ruby

job-php-python-perl-ruby

非常に興味深いグラフです。

  • TIOBE では Java が C# の 4 倍使われていることになっているのに、求人数は 2 倍程度である。
  • TIOBE では C# と Ruby のシェアの間に大きな違いはない(1.8倍ぐらい)のに、求人数では C# が Ruby を圧倒している。
  • TIOBE では PHP が Perl の 2 倍使われていることになっているのに、求人数は Perl の方が PHP よりもずっと多い。

C# の求人数が TIOBE の示すシェアと比べて大きく出ているのは、おそらくは C# が事実上マイクロソフトの .NET Framework 専用の言語であって、研究や趣味のために使われることが少ないためでしょう。

Perl の場合は、過去に作られたソフトウェアに対する機能追加や保守の需要が未だに衰えないことを意味していると思われます。

“トレンディ”なプログラミング言語の知識が、必ずしも職の確保に直結するわけではありません。

とはいえ、グラフの描き方を 2005 年 1 月からの相対値で表示すると、こうなります。

job-java-csharp-ruby-relative

job-php-python-perl-ruby-relative

Ruby プログラマーへの需要が増加していることは確かなようです。

少なくとも英語圏では。


IT エンジニアにとって、専門とするプログラミング言語の選択は非常に重要です。

新たなプログラミング言語を学び直すことは、世間で言われているほど簡単なことではありません。

文法を理解するだけなら短時間で終わるかもしれませんが、それだけでソフトウェアの開発を効率的に行えるわけではありません。

プログラミング言語ごとにエコシステムが形作られています。

ツール、ライブラリの探し方や使い方を習得しなければなりませんし、開発環境やインストール手順にも慣れなければなりません。

流暢にコードが書けるようになるには、個人差はあるでしょうが、少なくとも 3 年ぐらい使い込む必要があると、筆者は考えています。

悩ましいのは、技術者の間で人気があるプログラミング言語とビジネスで必要とされるプログラミング言語は異なる場合が多いということです。

新しいプログラミング言語が、ビジネスの世界に受け入れられるまでには数年から十数年程度の時間がかかりますし、必ず受け入れられる保証もありません。

他方、産業界で一世を風靡した言語のプログラマーに対する需要はかなりの長期にわたって衰えません。

とにかく、IT エンジニアにとってプログラミング言語の習得は大きな投資です。

短期的な視点と中・長期的な視点の両方で、状況をよく見極めることが大切です。