今回は、インターネット上でどんなコンピュータ言語が話題になっているかを表すデータを見ながら、今後のプログラミング言語の流行を予測してみる(編集部)
Linuxなどの、オープンソースソフトウェアを利用して開発したWebアプリケーションが一般的なものになってしばらくたつ。Webアプリケーション開発で多くの人が使うソフトウェアの組み合わせの略称である「LAMP」という言葉も有名になった。OSであるLinuxと、WebサーバであるApache HTTP Server(以降、Apache)、リレーショナルデーターベース管理システム(RDBMS)MySQL、そしてサーバサイドで動作するプログラム開発に使用するプログラミング言語であるP言語(PHP、Perl、Python)の頭文字を取った言葉だ。日本ではP言語の位置にRubyが入ることも多い。
しかしコンピュータやネットワークの技術は進化し続けており、その姿は刻一刻と変化している。最近のLinuxは、大企業の基幹システムで使うことを想定した機能の拡張が目立つ。Webサーバの世界を見ても、Apacheが絶大な支持を集めた時代は過ぎ去ろうとしている。2004年に登場したNginx(エンジンエックス)が着実に成長しているのだ。
このように、開発者を取り巻く環境は常に変化している。そこで気になるのが、P言語の人気が続くのかということと、P言語の次にどの言語が人気を集めそうかということだ。言語の流行を把握することは、開発者だけでなくLinuxユーザーや管理者にとっても悪いことではないだろう。
将来を確実に予知することは不可能だ。しかし、世界中の開発者が注目している言語を調べられれば、次に流行しそうな言語を予測できるかもしれない。世界中の開発者の注目を集めている言語を調べる方法としては、オランダのTIOBE Softwareが公開しているデータを利用するという方法がある。今回はこのデータが意味するところを紹介し、どのプログラミング言語に話題が集まっているのか、プログラミング言語に関する話題がどのように変遷しているのか解説する。
TIOBE Softwareは、世界中のブログや技術ドキュメントなどのデータを分析し、インターネット上のドキュメントに多く登場するプログラミング言語を調べている。同社はその結果を毎月(最近は中旬が多い)に公表している。
同社はこのデータを「TIOBE Programming Community Index(TIOBE PCI)」と呼んでいる。主要検索エンジン(Google、Bing、Yahoo!、Wikipedia、Amazon、YouTube、Baidu)を使って集めたデータから計算した値だ。数あるプログラミング言語のそれぞれが、どの程度インターネット上で「話題になっている」のかを示す1つの指針となっている。
TIOBE PCIを見るときは、1つ注意しなければならないことがある。数あるプログラミング言語のそれぞれが、どの程度インターネット上で「話題になっている」のかを示すデータであると説明したが、これは良い意味で話題になっているとは限らない。悪い意味で話題になっていることもあるのだ。
上位にあるプログラミング言語が優れたプログラミング言語であるとか、下位にあるプログラミング言語ができの悪いものであるということを意味するものでもない。あくまでも検索エンジンで得たデータを解析した値でしかない。
TIOBE PCIの値は、月単位で見ると意外に大きく変動する。ちなみに、2012年1月のTIOBE PCIのランキングの上位10言語と、どの程度話題になっているかを示す値は次の通り。
一方で、年単位でこの値を見ると一定の傾向を示すようになる(図1)。月単位だけでなく、年単位のデータも見れば、TIOBE PCIの値から世界中の開発者が気にしている言語を探れそうだ。
今回はTIOBE PCIで上位20位以内に登場するプログラミング言語の中でも、値の変動が興味深い傾向を見せているものを取り上げ、その動向の背後にある事情を探っていきたい。
図1を見ると、JavaとCが2大言語ということになる。Javaが1位、Cが2位というのがそれぞれの定位置だが、逆転することもある。そして、長期的に見るとJavaとCの差は狭まっており、どちらも同じような値に収束していくように見える。今後は、JavaとCの間で1位の座を争うような形になる可能性もあるだろう。
JavaとCのそれぞれを「話題」という面から考えると、いくつかの共通点が見えてくる。中でも注目したいのは、どちらも大学などの授業で利用されることが多いということだ。学生が最初に取り組むプログラミング言語となることが多く、その結果、話題になる機会も多くなる。
Javaは大企業の基幹システムでの採用、特にWebアプリケーションの作成で使うことが多い。大手ソフトウェアベンダが提供する製品を見ても、Javaで開発しているものが少なくない。1位というポジションを維持し続けている背景には、エンタープライズ分野におけるJavaの存在感が関係していると見られる。
一方、Cはハードウェアを操作するなど、「低レベルな」処理を記述するには欠かせない。OSの記述にも使えるほど、コンピュータの機能、性能をフル活用できるプログラミング言語だ。さらに、組み込み機器のプログラム開発においては、第1選択となることが多い。長い歴史があり、多数のユーザーを抱えている。この位置付けは当然だろう。
Copyright © ITmedia, Inc. All Rights Reserved.